一.单一职责原则----SRP
有且只有一个原因引起变更
二.里氏替换原则---LSP
所有引用基类的地方必须能透明地使用其子类的对象
1.子类必须完全实现父类的方法
2.子类可以有自己的个性(属性和方法)。
3.覆盖或实现父类的方法时输入参数可以被放大。
4.覆写或实现父类的方法时输出结果可以被缩小。
三.依赖倒置原则---DIP
1.高层模块不应该依赖低层模块,两者都应该依赖其抽象。
2.抽象不应该依赖细节。
3.细节应该依赖抽象。
精简的定义: 面向接口编程。
四.接口隔离原则:
客户端不应该依赖它不需要的接口
类间的依赖关系应该建立在最小的接口上
保证接口的纯结性:
1.接口要尽量小。
2.接口要高内聚。
3.定制服务。
4.接口的设计是有限度的。
五.迪米特法则----LKP
低耦合要求:
1.只和朋友交流
朋友类:出现在成员变量、方法的输入输出参数中的类。方法体内部的类不属于朋友类。
2.朋友间也是有距离的
迪米特法则要求类“羞涩”一点,尽量不要对外公布太多的public方法和非静态的public变量,尽量内敛,多使用private、package-private、protected等访问权限。
3.是自己的就是自己的
如果一个方法放在本类中,既不增加类间关系,也对本类不产生负面影响,就放置在本类中。
4.谨慎使用Serializable
六.开闭原则
一个软件实体如类、模块和函数应该对扩展开放,对修改关闭
软件实体包括以下几个部分:
1.项目和软件产品中按照一定的逻辑规则划分的模块。
2.抽象和类。
3.方法。
变化的三种类型:
1.逻辑变化
2.子模块变化
3.可见视图变化
有且只有一个原因引起变更
二.里氏替换原则---LSP
所有引用基类的地方必须能透明地使用其子类的对象
1.子类必须完全实现父类的方法
2.子类可以有自己的个性(属性和方法)。
3.覆盖或实现父类的方法时输入参数可以被放大。
4.覆写或实现父类的方法时输出结果可以被缩小。
三.依赖倒置原则---DIP
1.高层模块不应该依赖低层模块,两者都应该依赖其抽象。
2.抽象不应该依赖细节。
3.细节应该依赖抽象。
精简的定义: 面向接口编程。
四.接口隔离原则:
客户端不应该依赖它不需要的接口
类间的依赖关系应该建立在最小的接口上
保证接口的纯结性:
1.接口要尽量小。
2.接口要高内聚。
3.定制服务。
4.接口的设计是有限度的。
五.迪米特法则----LKP
低耦合要求:
1.只和朋友交流
朋友类:出现在成员变量、方法的输入输出参数中的类。方法体内部的类不属于朋友类。
2.朋友间也是有距离的
迪米特法则要求类“羞涩”一点,尽量不要对外公布太多的public方法和非静态的public变量,尽量内敛,多使用private、package-private、protected等访问权限。
3.是自己的就是自己的
如果一个方法放在本类中,既不增加类间关系,也对本类不产生负面影响,就放置在本类中。
4.谨慎使用Serializable
六.开闭原则
一个软件实体如类、模块和函数应该对扩展开放,对修改关闭
软件实体包括以下几个部分:
1.项目和软件产品中按照一定的逻辑规则划分的模块。
2.抽象和类。
3.方法。
变化的三种类型:
1.逻辑变化
2.子模块变化
3.可见视图变化