《类设计指南》

一.合理封装

面向对象设计(ood)之黄金准则——找出变化点,封装它

当年设计一个类时候,从一开始就用封装的思想来设计它

设计类时,不仅隐藏数据,同时也要隐藏底层数据存储方式、算法等具体实现细节

<一个封装良好的类,不用看文档就会用,也不易被误用>。

“封装”是一种重构方法

当对老代码进行维护时,对需要这些代码进行必要的抽象与封装,以提升其可扩展性,更易于重用,这是一种重要的系统重构方式

具体实现手段:

从现有的类中抽取出接口(或者抽象基类),推动系统架构进行演化。。。


二.基于职责设计类

每个类的职责必须要明确

每个类只承担一项职责

Expert/Information Expert原则

某项功能需要某些必要的信息,这些信息再哪个类中,就让这个类承担这些职责。(如果这个类要实现某个功能,而这个功能的这些信息一定要归属于这个类,即处理信息和信息本身要放到一个类中)

Creator原则

这一原则要求设计者想清楚一件事:

谁负责创建对象?

Controller原则

考虑:谁负责显示数据?谁负责相应事件?谁负责处理数据?..

例如非常著名的:MVC


High Cohesion/Low Coupling 

Coupling(耦合性):用于衡量对象之间依赖性的强弱

Cohesion(内聚性):用于衡量某个类所提供的外部功能及内部代码之间关联的紧密程度

在设计一个类的时候,追求“低耦合,高内聚”

有效方法:

1.组合优先与继承


Indirection(间接性)原则

对象之间相互关联,形成了复杂的交互网络

为了减少耦合,创建一个中间对象,将多对多关联拆散为一对多关联


Pure Fabrication 原则

当某些功能不适合与归属到特定的业务逻辑相关的类时,创建一个新的类,这种机制被成为“Pure Fabrication“,就是”生造出来的类“。


Protected Variations原则

这一原则可译为”隔离变化“原则,简单说:在设计类时,应该尽量让其少受外界的影响


Polymorphism(多态性)原则

利用多态性,把变化封装到子类中



三. 区分命令与查询

你可能感兴趣的:(《类设计指南》)