《设计模式》这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
原文地址:http://my.oschina.net/hinson0/blog/288144