文章内容
任何一门编程语言都离不开设计模式,设计模式是使代码持续可复用、可扩展、可维护的重要保证。
一、什么是设计模式
设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。它是解决特定问题的一系列套路,是前辈们的代码设计经验的总结,具有一定的普遍性,可以反复使用。其目的是为了提高代码的可重用性、代码的可读性和代码的可靠性。
二、设计模式七大基本原则
1、单一职责原则
一个类只做一件事,职责明确,降低类的复杂度,降低了变更引起的风险。
2、开闭原则
一个软件实体(如模块、类、接口、方法等)应该对修改关闭,对扩展开发。它是面向对象设计的终极目标,使得软件实体具体较强扩展性、复用性等。
3、接口隔离原则
对于接口来说,不要把不相关的方法放到一个接口里,子类需要什么方法就分开定义什么接口。它为了约束接口、降低类对接口的依赖性,起到了重要作用。
4、依赖倒置原则
高层模块不应该依赖低层模块,简单来说就是要依赖接口,不要依赖具体子类。
5、迪米特法则
要做“直接的朋友(直接依赖)”,不要做“陌生的朋友”(方法内部引用的类),也就是两个类无需直接通信,那么就不应该发生直接的相互调用。
6、里式替换原则
子类不要重写父类方法,否则就要定义更加基础的基类,通过依赖、聚合、组合来实现。
7、合成复用原则
不要重复造轮子,尽量使用组合或者聚合关系实现代码复用,少使用继承。
三、GoF 23种设计模式分类
《Design Patterns: Elements of Reusable Object-Oriented Software》(即后述《设计模式》一书),由 Erich Gamma、Richard Helm、Ralph Johnson 和 John Vlissides 合著(Addison-Wesley,1995)。这几位作者常被称为”四人组(Gang of Four)”,而这本书也就被称为”四人组(或 GoF)”书。
1、创建型模式
- 单例模式
- 工厂方法模式
- 抽象工厂模式
- 建造者模式
- 原型模式
2、结构型模式
- 适配器模式
- 装饰器模式
- 代理模式
- 外观模式
- 桥接模式
- 组合模式
- 享元模式
3、行为型模式
- 策略模式
- 模板方法模式
- 观察者模式
- 迭代器模式
- 责任链模式
- 命令模式
- 备忘录模式
- 状态模式
- 访问者模式
- 中介者模式
- 解释器模式