一、设计模式的目的
1) 代码重用性 (即:相同功能的代码,不用多次编写)
2) 可读性 (即:编程规范性, 便于其他程序员的阅读和理解)
3) 可扩展性 (即:当需要增加新的功能时,非常的方便,称为可维护)
4) 可靠性 (即:当我们增加新的功能后,对原来的功能没有影响)
5) 使程序呈现高内聚,低耦合的特性
二、设计模式的七大原则
1) 单一职责原则
2) 接口隔离原则
3) 依赖倒转(倒置)原则
4) 里氏替换原则
5) 开闭原则
6) 迪米特法则
7) 合成复用原则
三、单一原则
概念:
对类来说的,即一个类应该只负责一项职责。如类A负责两个不同职责:职责1,职责2。 当职责1需求变更而改变A时,可能造成职责2执行错误,所以需要将类A的粒度分解为 A1,A2。
例如:UserDao只负责操作用户表的CRUD,如果还操作订单表的CRUD的话,那么就违背了单一原则。如果需要操作两个表的话,那么就需要拆成两个比如userDao和orderDao。
实例:
首先我们用吃饭这个例子来说明,某某某在餐桌上吃饭,我们知道只有人是在餐桌上吃饭,而金鱼是不能在餐桌上吃饭的。我们说单一原则是只负责一项职责,那么有多个职责的话,就需要拆分开,在加一个动物在吃饭。
修改1:
这样就拆分成两个类了,各有各的职责。 也遵循了单一原则。
但是这样如果新加一个类型的话,那么我们需要新建一个类,新new一个对象,并且调用方法才可以使用,代码改动量比较大,那么继续优化
修改2:
其实就是抽取成一个类中,去执行多个方法,类似工具类一样
这样方式其实在类上没有遵守单一原则,因为里面有多个职责,但是类中的方法是单一原则的,只执行一种职责。
小结:
1、对类来说的,即一个类应该只负责一项职责
2、类没有遵守单一原则,但是类中方法遵守了也是可以的