当前位置: 首页 > 图形设计 > FLASH教程 > 正文

Think in ActionScript 3.0Ⅲ

时间:2010-11-09 blog.sina.com FL 车在臣

8.面向对象程序设计

8.1类和对象的概念

类:类是用来创建同 一类型的对象的“模板”,在一个类中定义了该类对象所应具有的成 员变量以及方法。

对象:对象是类的实例。

8.2类之间的关系

系统中的类有那些关系:依赖、关联(聚合、合成)、泛化、实现。

1.依赖:对于外部类或对象的引用;

5.关联:关联暗示两个类在 概念上位于相同的级别;

6.聚合:表示一种“拥有”关系,是 两个类之间一种整体 / 局部的关系;

7.合成:表示一种更强“拥有 ”关系,就像人和腿的关系一样。组合而成的新对象对组成部分的内容分配 和释放有绝对责任;

8.泛化:表现为继承 extends;

9.实现:表 现为实现 implements。

8.3 面向对象程序设计(OOP)

在面向对 象出现以前,结构化程序设计是程序设计的主流,结构化程序设计又称为面向过 程的程序设计。这种设计方法开发的软件稳定性、可修改性和可重用性都比较差 。

与过程相比对象是稳定的。面向对象的软件系统是由对象组成的,复杂 的对象是由比较简单的对象组合而成的。也就是说,面向对象方法学使用对象分 解取代了传统的功能分解。

面向对象的精髓在于考虑问题的思路是从现实 世界人类思维习惯出发的,只要领会了这一点,就领会了面向对象的思维方法。 万事万物皆为对象,大至日月星辰,小至沙粒微尘,都是对象。对象包容了一切 事物,不仅仅是那些看得见摸得着的是实体,如:地球、汽车、树叶,还包括那 些客观存在的事物,如:社会、互联网、朋友圈子等等,包罗万象。

以开 车为例,用面向过程的思想去考虑,那么你先得知道怎么启动,怎么踩油门,怎 么挂档。这些应该是司机的活,你要把这些步骤都实现出来。如果用面向对象的 思想,把自己看成领导,只需要下达命令,告诉它你要去哪里就行了(例如,调 用drive() 方法),具体怎么开,怎么踩油门,怎么挂档,不需要我们去管。

那么 dirve() 这个方法放到车里是否合适呢,是不是应该放到“司 机”类更合理呢?封装是很灵活的,没有对与错之分,只有好与更好,需要 具体问题具体分析。因为 dirve() 方法要用到油门和车档,而这些东西都在车里 面,因此如果将它封装到车这个类里面可能更好些。

下面我们通过对比面 向过程和面向对象的设计方式体会什么才是面向对象的思维。

8.4 出圈游 戏 —— 面向过程 VS 面向对象