面向对象之旅-设计与设计原则
好的面向对象的开发的目标是:代码易复用、可维护性强。
面向对象的设计方法:
1, 信息专家(Information Expert)
如果某个类拥有完成某个职责所需要的信息,那么,这个职责就应该分配给这个类。
2, 创造者(Creator)
如果下列条件被满足,则就由类A来创建类B:
a, A是B的聚合
b, A是B的容器
c, A持有初始化B的信息
d, A记录B的实例
e, A频繁地使用B
3, 低藕合(Low coupling)
下列情况会使A和B之间产生耦合:
a, A是B的属性
b, A调用B的实例方法
c, A的方法中引用了B,例如B是A方法的返回值或参数
d, A是B的子类,或者A实现了B
关于低耦合,还有一些基本的原则
a, Don’t talk to strangers,不需要进行通信的两个对象之间,就不要连接
b,如果A和B已经有了连接,分配A的职责给B不合适的话(违反信息专家模式),那么就把B的指责分配给A
c,两个不同模块的内部类之间不能直接连接
4, 高内聚(High cohesion)
5, 控制器(Controller)
6, 多态(Polymorphism)
7, 纯虚构(Pure Fabrication)
8, 间接(Indirection)
9, 受保护的变化(Protected Variations)