|
沙发
楼主 |
发表于 2016-7-2 14:18:20
|
只看该作者
本帖最后由 jimu 于 2016-7-2 18:15 编辑
OMT是Object Modeling Technology的缩写, 意为对象建模技术.
它从三个方面对系统进行建模,每个模型从一个侧面反映系统的特性,三个模型分别是:对象模型、动态模型和功能模型。
OMT方法的OOA(Object-Oriented Analysis(面向对象分析方法))模型包括对象模型,动态模型和功能模型
类:描述成一个矩形,其中的类名以黑体表示;操作在类名下面,以常规字体表示。类所定义的任何数据都在操作的下面。类名与操作之间以及操作与数据之间用横线分割。
实例化: 对象通过实例化类来创建,此对象被称为该类的实例。
下图中的虚箭头表示一个类实例化另一个类的对象,箭头指向被实例化的对象的类。
类继承:
抽象类:主要目的是为它的子类定义公共接口。一具抽象类将把它的部分或全部操作的实现延迟到子类中,因此,一个抽象类不能被实例化。在抽象类中定义却没有实现的操作被称为抽象操作。
非抽象类称为具体 类(concrete class).
抽象类的类名以斜体表示,以与具体类相区别。抽象操作也用斜体表示。图中可以包括实现操作的伪代码,如果这样,则代码将出现在带有揩角的框中,并用虚线将该揩角框与代码所实现的操作相连。
类继承与接口继承的比较
理解对象的类(class)与对象的类型(type)之间的差别是非常重要。
一个对象的类定义了对象是怎样实现的,同时也定义了对象的内部状态和操作的实现。
但是对象的类型只是与它的接口有关,接口即对象能响应的请求的集合。一个对象可以有多个类型,不现类的对象可以有相同的类型。
理解类继承和接口继承(或子类型化)之间的差别是十分重要的。类继承根据一个对象的实现定义另一个对象的实现。简而言之,它是代码和表示的共享机制。
然而,接口继承(或子类型化)描述了一个对象什么时候能被用来替代另一个对象。
运用复用机制
1.继承和组合的比较
优先使用对象组合,而不是类继承。
2.委托(delegation)
是一种组合方法,它使组合具有与继承同样的复用能力。在委托方式下,有两个对象参与处理一个请求,接受请求的对象将操作委托给它的代理者(delegate)。
这类似于子类将请求交给它的父类处理。使用继承时,被继承的操作总能引用接受请求的对象,C++中通过this成员变量。委托方式为了得到同样的效果,
接受请求的对象将自己传给被委托者(代理人),使被委托的操作可以引用接受请求的对象。
3.继承和参数化类型的比较
|
|