类设计策略
面向对象的设计这一主题较为复杂;整个行业的人员都对此学科进行了大量的学术研究和专
业实践。尽管如此,下面还是给出了几条建议以帮助您着手进行面向对象的编程。
1. 请考虑一下该类的实例将在应用程序中扮演的角色。通常,对象担任以下三种角色之一:
■ 值对象:这些对象主要用作数据的容器 ― 也就是说,它们可能拥有若干个属性和很
少的几个方法(有时没有方法)。值对象通常是明确定义的项目的代码表示,例如音
乐播放器应用程序中的 Song 类(表示单个实际的歌曲)或 Playlist 类(表示概念
上的一组歌曲)。
■ 显示对象:它们是实际显示在屏幕上的对象。例如,用户界面元素(如下拉列表或状
态显示)和图形元素(如视频游戏中的角色)等等就是显示对象。
■ 应用程序结构:这些对象在应用程序执行的逻辑或处理方面扮演着广泛的支持角色。
例如,在仿生学中执行某些计算的对象;在音乐播放器应用程序中负责刻度盘控件与
音量显示之间的值同步的对象;管理视频游戏中的规则的对象;或者在绘画应用程
序中加载保存的图片的对象。
2. 确定类所需的特定功能。不同类型的功能通常会成为类的方法。
3. 如果打算将类用作值对象,请确定实例将要包含的数据。这些项是很好的候选属性。
4. 由于类是专门为项目而设计的,因此最重要的是提供应用程序所需的功能。回答下列问
题可能会对您很有帮助:
■ 应用程序将存储、跟踪和处理哪些信息?确定这些信息有助于您识别可能需要的值对
象和属性。
■ 需要执行哪些操作 ― 例如,在应用程序首次加载时,在单击特定的按钮时,在影片
停止播放时,分别需要执行哪些操作?这些是很好的候选方法(如果“动作”仅涉
及更改单个值,则是很好的候选属性)。
■ 对于任何给定的动作,要执行该动作,该类需要了解哪些信息?这些信息将成为方法
的参数。
■ 随着应用程序开始工作,应用程序的其它部分需要了解类中的哪些内容将发生更改?
这些是很好的候选事件。
5. 如果有一个现有的对象与您需要的对象类似,只是缺少某些您需要添加的一些额外功
能,应考虑创建一个子类(在现有类的功能的基础之上构建的类,不需要定义它自己的
所有功能)。例如,如果您希望创建一个将作为屏幕上的可视对象的类,可将一个现有显
示对象(如 Sprite 或 MovieClip)的行为用作该类的基础。在这种情况下,MovieClip
(或 Sprite)是“基类”,而您的类是该类的扩展。有关创建子类的详细信息,请参阅