针对Android的重新认识OOP(上)

几个字尾的基本概念

“-Oriented”含义

  • “-Oriented”翻译,导向的,定向的
  • “Object-oriented”相信所有程序都是由对象构成的
  • 综上,开发时,写代码,心中需要有面向对象的信仰,写各种class实现需求。

“-Based”含义

  • “-Based”翻译,根基,以…为基础
  • “Requirement-based”基于需求,有先后的顺序。简单来说,就是先进行需求分析,基于分析得到的结果,再进行后续的开发活动。

“-Driven”含义

  • “-Driven”翻译,引导,受到驱策的(不是驱动)
  • “Model-driven”开发之前,先制定一个模型(为开发引导方向),不违背该模型前提下,进行实际开发活动
  • “Use Case-driven”以用户的使用需求为方向,进行开发。

“-Centered”含义

  • “-Centered”翻译,围绕…为中心
  • “Architecture-centered”一切开发活动都围绕架构,就像在一颗圣诞树上挂灯饰。

重新认识对象(Object)

OOP思想中,我们所认识的一切东西,都是对象(Object)

如何才能算认识h3>

能够说出其特点并能与其他对象进行比较,而特点包括:
1. 对象的特征或者属性
2. 对象的行为

面向对象什么意思h3>

相信我们身边的一切,都是有相应的class与之对应

举个栗子:

  1. 自然界中,鸟的特征:有翅膀,有眼睛;鸟的行为,鸣叫,飞行。
  2. 代码界中,对象是由数据(Data)与函数(Function)组成。

类的用途 – 叙述软件对象

类(Class)是群体(或集合),而对象是类的一个个体,需要明白对象与类的关系
类是一群具有共同重要特性的对象。类的定义即是说明这群对象有什么重要的特性(包括对象的特征及其行为),而软件中,对象以数据来表达特征,以函数来表达行为。

代码示例:

另外,实例(Instance):与对象含义相近似,而在计算机角度,实例偏向于,开辟了的存储空间。

结构用途

继承(Inheritance):子类会继承父类的所有特性(特征以及其行为),也可以理解成子类是父类的扩展的一种形式。

对众多对象分门别类之后,可以形成一个继承体系。

类与类的组合关系:接口(interface)与实现类的关系(implements),接口会定义一个等待实现的方法,实现类需要实现接口定义的方法,换一种说法,接口定义了一种格式,而实现类需要符合这种格式才能与接口对接(implements),就像电脑的USB接口,那么U盘就必须要有一个与这个接口相匹配的对接处才能接上电脑。

**例如:**Java中,提供了一个Thread基类和一个Runnable接口,那么这两个元素构成了一个框架。Thread基类有一个start方法,而Runnable接口有一个run方法。那么如何使用这个框架read类需要传入一个Runnable接口的实现类,那么,就需要构造一个Runnable接口实现类。上述过程可以想像成,你需要打开U盘里面的一个文件(Thread.start();),首先你要接入U盘(传入一个Runnable接口实现类),而你需要这个U盘是一个能够符合USB规格的U盘才能接入(需要构造一个实现Runnable接口的实现类),而且你还需要保证U盘里面有你想要的文件(也就是根据需求,实现run方法)。

综上:这个框架工作原理就是,Thread基类先创建一个小线程,然后该线程通过Runnable接口,呼叫实现类实现后的run方法。
现在,换一种方式来思考,Thread类与Runnable接口,直接看的话,看似没有什么关系,但是通过理解上面的工作原理,那么就可以这么认为了:把Runnable塞入Thread中(就像把USB接口镶嵌在笔记本电脑上),然后Thread就看成一个抽象函数(不是真的是抽象函数,只是从结构上认为),而实现类的方法会覆盖掉Thread类中的run抽象方法,这样就变成了实现类是Thread类的子类了(注意,两者不是继承关系)。

原本的结构:

那么,这样不就是基类子类的结构关系了吗br> 也说明了组合关系可以变成这样一个基类子类的关系。

这样可以得出一个结论:
基类子类的结构可以呈现两种意义:
1. 继承关系
2. 组合关系

代码示例:

工作原理,即基类子类工作原理:
new子类(Task)时候,会自动new基类(Thread)的对象,而run方法又被Task实现了,所以能如此使用

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2016年1月11日
下一篇 2016年1月12日

相关推荐