













寻找合适的对象
面向对象设计最困难的部分是将系统分解成对象集合。
一些设计方法:
1.写出一个问题描述,挑出名词和动词,进而创建相应的类和操作
2.关注于系统的协作和职责关系
3.对现实世界建模,再将分析时发现的对象转化至设计中决定对象的粒度
指定对象接口
对象声明的每一个操作指定操作名、作为参数的对象和返回值,这就是所谓的操作的型构(signature)。对象操作所定义的所有操作型构的集合被称为该对象的接口(interface)。
对象接口与其功能实现是分离的,不同对象可以对请求做不同的实现,也就是说,两个有相同接口的对象可以有完全不同的实现。描述对象的实现
对象的实现是由它的类决定的,类指定了对象的内部数据和表示,也定义了对象所能完成的操作
类继承与接口继承的比较:
类继承根据一个对象的实现定义了另一个对象的实现。简而言之,它是代码和表示的共享机制。然而,接口继承 (或子类型化)描述了一个对象什么时候能被用来替代另一个对象。
C++中接口继承的标准方法是公有继承一个含 (纯)虚成员函数的类。 C++中纯接口继承接近于公有继承纯抽象类,纯实现继承或纯类继承接近于私有继承。
可复用的面向对象设计的第一个原则:针对接口编程,而不是针对实现编程。
运用复用机制
面向对象系统中功能复用的两种最常用技术是类继承和对象组合(object composition)。
面向对象设计的第二个原则:优先使用对象组合,而不是类继承。
委托与参数化类型关联运行时刻和编译时刻的结构设计应支持变化
获得最大限度复用的关键在于对新需求和已有需求发生变化时的预见性,要求你的系统设计要能够相应地改进。
怎样选择设计模式?
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。