1.单一职责原则
一个类,最好只做一件事,只有一个引起它变化的原因。
一个类只有一个引起它变化的原因,否则就应当考虑重构。
单一职责原则,由引起变化的原因决定,而不由功能职责决定。虽然职常常是引起
变化的轴线,但是有时却未必,应该审时度势。
测试驱动开发,有助于实现全理分离功能的设计。
可以通过Facade模式或Proxy模式进行职责分离。
一个类,应该仅有一个引起它变化的原因,不要将变化原因不同的职责封装在一起
,而应该隔离。
2.开闭原则
对扩展开放,对修改关闭。
实现开闭原则的关键是抽象化,并且从抽象化导出具体实现。
开闭原则是面向对象设计的主要目标。
3.里氏代换原则
在使用基类和抽象类的地方,都可以用其子类或实现了该接口的类替换。
里氏代换原则是继承复用的基石。所有支持继承复用的语言都满足里氏代换原则
4.依赖倒转原则
要依赖于抽象,不要依赖于具体。
要针对抽象编程,不要针对实现编程。
要针对抽象编程的意思是:应当使用抽象和接口进行变量的类型声明、参量的类型
声明、方法的返回类型声明,以及数据类型的转换等。
不要针对实现编程的意思是:不应当使用具体类进行变量的类型声明、参量的类型
声明、方法的返回类型声明,以及数据类型转换等。
要保证做到这点,一个具体的类应当只实现接口和抽象类中声明的方法,而不应当
给出多余的方法。这个比较难。一个具体类总有自己独有的方法。
倒转依赖强调一个系统内的实体之间关系的灵活性。基本上,如果设计师希望遵守
开闭原则,那么依赖倒转原则便是达到要求的途径。
里氏代换原则是是依赖倒转原则的基础。
依赖倒转原则是面向对象设计的核心原则,设计模式的研究和应用是以依赖倒转原
则为指导原则的。
依赖倒转原则是面向对象设计的主要机制。
5.接口隔离原则
使用多个专门的接口比使用单一的总接口要好。
一个类对另一个类的依赖性应当建立在最小的接口上。
准确而恰当地划分角色以及角色对应的的接口,是面向对象设计的一个的组成部
分。将没有关系的接口合并在一起,形成一个臃肿的大接口,是对角色和接口的
污染。
6.合成/聚合复用原则
意思:在一个新的对象里面使用一些已有的对象,使之成为新对象的一部分;新的
对象通过向这些对象的委派达到复用已有功能的目的。
要尽量使用合成/聚合,尽量不使用继承。
7.迪米特法则
又叫做最少知识原则,就是说,一个对象应当对其他对象有尽可能少的了解。
优先考虑将一个类设置成不变类。
尽量降低一个类的访问权限。
谨慎使用序列化。
尽量降低成员的访问权限。
posted on 2011-07-14 21:07
张志松 阅读(321)
评论(0) 编辑 收藏 引用