面向对象设计原则

JAVA面向对象设计原则

面向对象设计原则:

目的是提高软件的可维护性和可复用性

最常见7种

1、单一职责原则

Single Responsibility Principle(SRP)

一个对象一个只包含单一的职责,并且该职责被完整地封装在一个类中。

2、开闭原则

Open-Closed Principle(OCP)

软件实体应该对拓展开放,对内修改关闭。

需要对系统进行抽象化设计

3、里氏代换原则

Liskov Substitution Principle(LSP)

所有引用基类的地方必须能透明地使用其子类的对象

里氏是一个外国提出者的姓氏而已,就是说可以将一个基类对象替换成其子类的对象,程序不产生错误和异常,但是反过来就不行。不能将把子类对象替换成基类。比如我喜欢动物(基类),所以我一定喜欢狗(子类),但是反过来不行。类似多态。

1
2
3
4
5
Animal a = new Animal();
Dog d = new Dog();

(Animal)d; // 不一定行
(Dog)a; // 可以

4、依赖倒转原则

Dependence Inversion Principle(DIP)

高层模板不应该依赖低层模板,它们都应该依赖抽象。抽象不应该依赖于具体细节,细节应该依赖于抽象。

5、接口隔离原则

Interface Segregation Principle(ISP)

客户端不应该依赖那些它不需要的接口。

6、合成复用原则

Composite Reuse Principle(CRP)

优先使用对象组合,而不是通过继承来达到复用的目的。

7、迪米特法则

Law of Demeter(Lod)

每一个软件单位对其他单位都只有最少的知识,而且局限于那些与本单位密切的软件单位。
迪米特是个人名,这个法则也被称为最少知识法则

insist,on the road
-------------本文结束感谢您的阅读-------------