《UML面向对象设计基础》—第1章1.10节本章小结

简介:

本节书摘来自异步社区《UML面向对象设计基础》一书中的第1章1.10节本章小结,作者【美】Meliir Page-Jones,更多章节内容可以访问云栖社区“异步社区”公众号查看。

1.10 本章小结
UML面向对象设计基础
因为“面向对象”在英语中就没有绝对优势的定义,因此,针对面向对象定义的特性从来就没有一致的意见。我本人认为以下特性对面向对象是至关重要的:封装、信息/实现隐藏、状态保持、对象标识、消息、类、继承、多态性及一般性。

面向对象的封装产生一个由表示对象状态的属性及其操作组成的软件结构(“对象”),用实现的术语讲,就是操作的方法处理保持对象状态的变量。封装确保对对象内部信息的任何修改(或访问)都必须通过对象的操作。

信息/实现隐藏是对好的封装的一种回报。好的封装使得信息对于一个对象而言是局部的,因此可以将对象内部实现的设计策略保护起来,不受外界的干扰。

状态保持特性指一个对象具有保持信息能力,包括激活操作之间的间隔。

对象标识给予每个对象一个唯一且永久的标识,它与对象的当前状态无关。对象句柄是赋予对象标识的通常机制。

发送消息的对象必须知道目标对象的句柄。消息由目标对象的操作名及操作的输入、输出参数组成。参数可以是数据或数据指针。但在纯面向对象环境中,参数仅指对象。

从相同类衍生的对象共享相同的结构和行为。类是一个设计和编程结构的模板,在运行时从模板可以实例化对象。类可以有一组类操作和类属性。

原则上每个对象有自己的一组方法实现实例操作及一组变量实现其实例属性。然而实际上为节省内存空间,相同类的对象通过共享每个实例方法的相同副本。

多个类可以形成一个超类和子类的继承层次结构(或框架)。继承允许类的对象使用其超类所具有的一切信息。必要时,类的操作可以在子类中重定义(“覆盖”)。

多态性指多个不同的类可以定义同一个操作名,并且在每个类中具有不同的实现。多态的另一个特性是允许一个属性在不同的时间表示不同类的对象。

多态性增加了一种新的实现隐藏方法使面向对象更加有效。例如,发送对象在发送消息时可以不知道具体的目标对象类。只要设计者知道所有可能访问的具有正确名字和参数操作的类,在运行环境中确定选择哪个特定操作就可以了。

重载是一个类似于多态性的概念,运行时通过检测消息的数目和/或参数的类,从操作的多个不同实现中选择一种实现。多态性和重载典型地属于动态(或运行时)绑定。

一般性允许参数化类,以类作为参数实例化一个对象。一般性使得建立“一般”容器类非常简单,这些容器类作为框架类等到运行时再增添具体内容。参数化类具有复制程序的优点,但没有复制维护开销。

本文仅用于学习和交流目的,不代表异步社区观点。非商业转载请注明作译者、出处,并保留本文的原始链接。

相关文章