1,单一职责原则
就一个类而言,应该仅有一个引起它发生变化的原因
如果想到多于一个动机去改变一个类,那么这个类就多余一个职责
2,开放-封闭原则
对扩展开放(open for extension)
对更改关闭(closed for modification)
发生变化的时候,创建抽象隔离以后可能发生的同类变化
面对需求,对程序的改动是通过增加代码进行的,而不是更改现有的代码
创建抽象,但是应该避免刻意的抽象(抽象出运算类)
3,依赖倒转原则
1,高层模块不应该依赖于底层模块,都应该依赖于抽象或者接口(低层模块函数库之类的)
2,抽象不应该依赖于细节,细节应该依赖于抽象。
3,针对接口编程,而不是实现编程
4,里氏代换原则
1,子类型必须能够替换掉他们的父类型
2,由于子类型的可替换性使得父类类型的模块在无需修改的情况下就能够扩展
3,只有当子类能够替换掉父类,软件单位的功能不受到影响的时候,父类才能真正被服用,而子类也能够在父类的基础上增加新的行为
5,迪米特法则(少知识原则)
1,定义:如果两个类不必彼此直接通信,那么这两个类就不应该直接相互作用,如果其中一个类需要调用另外一个类,可以通过第三者转发这个调用
2,在类的结构设计上,每一个类都应该尽量降低成员的访问权限
3,类之间的耦合越弱,越利于复用,一个处在弱耦合的类被修改,不会对有关系的类造成波及。
网友评论