« | July 2025 | » | 日 | 一 | 二 | 三 | 四 | 五 | 六 | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | | | |
| 公告 |
暂无公告... |
Blog信息 |
blog名称:七月天 日志总数:19 评论数量:84 留言数量:0 访问次数:199984 建立时间:2004年11月4日 |

| |
[设计模式]设计模式(6)--描述对象实现 原创空间, 读书笔记, 软件技术
torrent 发表于 2005/8/8 1:16:43 |
------(续上节--设计模式如何解决设计问题)
描述对象实现
对象的实现要通过类中的定义,类详细描述了对象的内部数据和表示,以及定义了对象可以执行的操作。
我们采用基于OMT的概念(见附录B),以矩形描述类,将类名用粗体字显示,而操作出现在类名下面,以正常字体表示,数据的定义紧跟着操作。类名、操作、和数据之间用线分隔:
500)this.width=500'>
返回类型和实例变量类型是可选的,因为我们没有采取静态类型实现语言。
对象通过类的实例化而建立,对象被称为类的实例。类实例化的过程包括为对象的内部数据分配内存空间(建立实例变量),和将数据与操作相联系。类的实例化可创建多个相似的实例对象。
虚线表明了一个类实例化另一个类的对象,箭头所指为实例化对象所属的类。
500)this.width=500'>
新类可以通过类继承的方式从已存的类中派生。当子类继承于父类时,子类包括了父类中定义的数据和操作。子类的实例对象包含子类定义的数据和其从父类继承来的数据,并且可以执行子类和父类中定义的所有操作。我们在下图中指明了子类和父类的关系。
500)this.width=500'>
抽象类的主要目的是为了定义其子类的共同接口。抽象类将其部分或全部的操作推迟到在其子类中实现,因此,抽象类不能被实例化。在抽象类中声明但未实现的操作称为抽象操作。非抽象类称为具体类(concrete classes)。
子类可重定义其父类的行为,具体的说,子类可以重载(override)父类所定义的操作。重载使得子类可以代替其父类处理请求。类的继承机制使你能够通过简单的扩展其它类而定义一个类,可以容易的定义出一个具有相关功能的类族。
抽象类的名字用斜体表示,以区分具体类,抽象操作也是如此。如果包含操作的伪代码,则用狗耳虚线指向操作名。
500)this.width=500'>
混合类(mixin class)可为其它类提供可选的接口和功能。类似于抽象类,它也不能实例化。混合类的实现需要借助于多继承。
500)this.width=500'>
--------(又未完)------ |
|
|