个人学习整合自
- 《Java设计模式》 刘伟 编著
面向对象设计原则
目的是软件的可维护性和可复用性。
最常见的有以下七个。
1. 单一职责原则
Single Responsibility Principle(SRP)
一个对象一个只包含单一的职责,并且该职责被完整地封装在一个类中。
比如说一个类里面有数据库连接方法,数据库CRUD方法,显示打印方法,那么对应的实例对象的职责就太多了。以后每次对某个方法修改都对整个类改动。不符合单一职责原则。应该分为三个类
- DBUtil: 负责数据库连接的类,getConnection()方法。
- CustomerDAO: 类里面放CRUD方法。
- CustomerEcho: 类里面放打印显示的功能方法。
2. 开闭原则
Open-Closed Principle(OCP)
软件实体应该对拓展开放,对内修改关闭。
就是说有新需求的时候,我们不用修改现在的代码,只需要添加新的代码就可以了。所有就需要对系统进行抽象化设计了。分为抽象层(接口、抽象类)和实现层。新需求代码就多写拓展实现层就行了。
3. 里氏代换原则
Liskov Substitution Principle(LSP)
所有引用基类的地方必须能透明地使用其子类的对象
里氏是一个外国提出者的姓氏而已,就是说可以将一个基类对象替换成其子类的对象,程序不产生错误和异常,但是发过来就不行。不能将把子类对象替换成基类。比如我喜欢动物(基类),所以我一定喜欢狗(子类),但是反过来不行。类似多态。