首页 > 代码库 > 设计模式6大原则

设计模式6大原则

《设计模式》这6大原则,自己总结了下:

设计模式6大原则:

1 开闭原则

a 定义:对拓展打开,对修改关闭

b 理解:

- 通常表现为switch语句。这样的语句在新的需求增加后,必然要新增一个case,可以改变设计,以实现只需要拓展,不需要变更代码


2 单一职责

a 定义:只做自己的事情。

b 理解:

- 类只做自己的事情

- 当职责扩散后,分析是否应该切类。


3 依赖倒置原则

a 定义:面向接口编程(核心),而非面向细节编程。

b 理解:

- 细节往往多变,而抽象则稳定很多。

- 抽象指的是:抽象类/接口。而细节指的是具体的实现类

- 抽象类/接口表现为:制定好相关的约束和规范。实现类表现为:实现具体的约束和规范。


4 接口隔离原则

a 定义:以适合的粒度去设计类,避免过度臃肿的接口,也不要设计过度细腻的接口。

b 理解:

- 接口的含义是定义相关"契约"

- 要实现这些契约,应该遵守最小接口原则,类不应该去实现不需要的功能

- 但涉及的时候又不可以切的太细,否则会造成接口的泛滥


5 迪米特法则:

a 定义:俗称最少知道原则。2个类之间应该保持最少知道原则。即2个类应该通过“直接朋友”的关系来表达通信

b 理解:

- 直接的朋友定义为:方法的参数,方法的返回值,成员变量

6 里氏替换原则:

a 定义:子类继承父类,不要去重载,重写父类的方法

b 理解:

- 如果子类去重载,重写了父类,当发生父类修改时,父类举要顾及到所有的子类,而这会带来很多问题

- 采用的方案是:将父类与子类重新继承更抽象的基类,去掉原有的继承关系。


参考:

1 http://baike.baidu.com/view/66964.htm?fr=aladdin

2 http://www.uml.org.cn/sjms/201211023.asp#2