预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共55页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

软件工程SoftwareEngineering第11章面向对象设计原则11.1类型一致性与闭合行为 11.1.2类型一致性原则 类型一致性设计原则可表述为:如果s为t的真子类型,则s必须与t一致,即类型s的对象可以出现在类型t的对象所需要的任何环境中,并且当该对象的任何获取操作执行时,仍能保持其正确性。例如,Circle是Ellipse的子类型。尽管这个椭圆形操作扩展成圆形是不行的,但任何为圆形的对象也必然是椭圆形的。11.1.3闭合行为原则 闭合行为原则是指:在基于类型/子类型层次结构的继承层次结构中,类C的任何对象操作的执行——包括从C的超类继承的所有操作——应满足C的类不变式。 如果设计一个类中给某个对象发送消息来调用其修改操作,则应该检查目标类的闭合性。如果发送消息并作一般(超类)条件假设,则必须做好准备,目标对象可能拒绝该消息或不作任何操作便返回。如果出现该问题,则在发送消息前,11.2封装与共生性2.制定标准管理各个封装级别之间的相互作用 传统结构设计标准: 表11-1的扩展,其中包括了2级封装11.2.3面向对象系统中共生性的滥用 1.C++的友员函数 创立C++的友员函数是非常明显地破坏封装边界的行为。 2.依赖于实现的偶然性 在应用过程中利用偶然性,没有依据的事实应用和已创建类的内部操作运算之间创立超出封装边界的算法共生性。 3.无约束的继承 11.2.4共生性的术语 如果两个对象被迫合成为一个示例,那么说这两个对象具有示例共生性。如果两个对象不得不具有相同的生命期,则它们具有生命期共生性——或者被人们表述为持续时间共生性。11.3领域、依附集和内聚11.3.2依附集Demeter规则的惯用语是如下描述的:11.3.3类的内聚:一个类和它的特性11.4继承与多态性的危险性11.4.6多态性的危险性11.5状态空间和行为11.5.2子类的状态空间11.5.3子类的行为11.5.4状态空间的一个约束条件:类的不变式11.5.5前置条件和后置条件11.5.6类接口中支持的状态11.5.7类接口中支持的行为11.5.8类接口中操作的聚合谢谢