1、设计模式的目的
设计模式是为了程序(软件)具有更好的:
1. 代码重用性(即:相同的代码,不用多次编写)
2. 可读性(编程规范性,便于阅读)
3. 可拓展性
4. 可靠性
5. 高内聚低耦合
2、设计模式七大原则
常用的七大原则有:
- 单一职责原则
- 接口隔离原则
- 依赖倒转原则
- 里氏替换原则
- 开闭原则
- 迪米特法则
- 合成复用原则
单一职责原则
基本介绍:一个类只负责一项职责,尽量做到类的只有一个行为原因引起变化;
如类A负责两个不同的职责,1和2,当职责1需求变更而改变A时,可能造成2执行错误,所以需要将类A进行粒度分解为A1和A2。
接口隔离原则
基本介绍:客户端不应该依赖它不需要的接口,即一个类对另一个类的依赖应该建立在最小接口上。
比如下面的类图就不符合接口隔离原则:
将Interface1拆分成几个独立的接口,也就是符合接口隔离原则的类图如下:
依赖倒转原则
基本介绍:
1、中心思想是面向接口编程;(通过接口作为参数实现应用场景)
2、 抽象就是接口或者抽象类,细节就是实现类(细节是多变的,抽象是稳定的)
3、上层模块不应该依赖下层模块,两者应依赖其抽象
4、抽象不应该依赖细节,细节应该依赖抽象;
里氏替换原则
基本介绍:
里氏替换原则就是在子类中尽量不要重写父类的方法(子类可以扩展父类的功能,但不能改变原有父类的功能;)
目的:增强程序的健壮性
解决办法:把原来的父类和子类都继承一个更通俗的基类,原有的继承关系去掉,采用依赖,聚合,组合的方式关系替代。
开闭原则
用抽象构建架构,用实现扩展原则;(总纲)
即:对拓展开放(对提供方),对修改关闭(对使用方)
迪米特法则
基本介绍:最少知道原则,尽量降低类与类之间的耦合;一个对象应该对其他对象有最少的了解
大白话:对于被依赖的类不管多复杂,都应该封装到类的内部,对外提供public方法,不向外面泄露任何信息
更简单的定义: 只与直接朋友通信(我们将成员变量,方法参数,返回值中的类称为直接朋友)
合成复用原则
基本介绍:
尽量使用合成/聚合的方式,而不是继承
设计模式核心思想
1、找出应用中需要变化的地方,把他们独立出来,不要和那些不要变化的代码混在一起
2、面向接口编程,而不是面向实现编程
3、为了交互对象之间的松耦合设计而努力