JAVA面向对象设计原则
面向对象设计原则:
目的是提高软件的可维护性和可复用性
最常见7种
1、单一职责原则
Single Responsibility Principle(SRP)
一个对象一个只包含单一的职责,并且该职责被完整地封装在一个类中。
2、开闭原则
Open-Closed Principle(OCP)
软件实体应该对拓展开放,对内修改关闭。
需要对系统进行抽象化设计
3、里氏代换原则
Liskov Substitution Principle(LSP)
所有引用基类的地方必须能透明地使用其子类的对象
里氏是一个外国提出者的姓氏而已,就是说可以将一个基类对象替换成其子类的对象,程序不产生错误和异常,但是反过来就不行。不能将把子类对象替换成基类。比如我喜欢动物(基类),所以我一定喜欢狗(子类),但是反过来不行。类似多态。
1 | Animal a = new Animal(); |
4、依赖倒转原则
Dependence Inversion Principle(DIP)
高层模板不应该依赖低层模板,它们都应该依赖抽象。抽象不应该依赖于具体细节,细节应该依赖于抽象。
5、接口隔离原则
Interface Segregation Principle(ISP)
客户端不应该依赖那些它不需要的接口。
6、合成复用原则
Composite Reuse Principle(CRP)
优先使用对象组合,而不是通过继承来达到复用的目的。
7、迪米特法则
Law of Demeter(Lod)
每一个软件单位对其他单位都只有最少的知识,而且局限于那些与本单位密切的软件单位。
迪米特是个人名,这个法则也被称为最少知识法则