设计模式
设计模式是一套被反复使用,多数人知晓,经过分类编目的,代码设计经理总结,使用设计模式是为了可重用代码,让代码更容易被他人理解,保障代码可靠性
设计模式不是一种方法和技术,而是一种思想
设计模式和具体语言无关,学习设计模式就是要建立面向对象的思想
尽可能面向接口编程,低耦合,高内聚分类:
创建型模式:对象的创建
结构型模式:对象的组成
行为型模式:对象的行为
创建型模式
- 简单工厂模式
- 工厂方法模式
- 抽象工厂模式
- 建造者模式
- 原型模式
- 单例模式
结构型模式
- 外观模式
- 适配器模式
- 代理模式
- 装饰模式
- 桥接模式
- 组合模式
- 享元模式
行为型模式
- 模版方法模式
- 观察者模式
- 状态模式
- 职责链模式
- 命令模式
- 访问者模式
- 策略模式
- 迭代器模式
- 解释器模式
- 备忘录模式
设计原则
单一职责原则
核心思想:
高内聚,低耦合
每一类只有一个职责,对外只能提供一种功能
而引起类变化的原因应该只有一个,在设计模式中,所有的设计模式都遵循这一原则
开闭原则
核心思想:
一个对象对扩展开放,对修改关闭
即对类的改动是通过增加代码进行的,而不是修改现有代码
需要借助抽象和多态,即把可能变化的内容抽象出来,从而使抽象的部分是相对稳定的,而具体的实现则是可以改变和扩展的
里氏替换原则
核心思想:
在任何父类出现的地方都可以用它的子类来替代
同一个继承体系中的对象应该有共同的行为特征
依赖注入原则
核心思想:
要依赖于抽象,不要依赖于具体实现
应用程序中,所有的类如果使用或依赖于其它的类,则应该依赖这些其它类的抽象类,而不是这些其它类的具体类。
要求我们在编程的的时候针对抽象类或者接口编程,而不是针对具体实现编程
接口分离原则
核心思想:
不应该强迫程序依赖它们不需要使用的方法
一个接口不需要提供太多的行为
一个接口应该只提供一种对外的功能
不应该把所有的操作都封装到一个接口
迪米特原则
一个对象应该对其它对象尽可能少的了解
降低各个对象之间的耦合,提高系统的可维护性,在模块之间应该只通过接口编程,而不理会模块的内部工作原理,它可以使各个模块耦合度降到最低,促进软件复用