目录
设计模式的全部内容均来自深入设计模式
设计模式是什么
设计模式是软件设计中常见问题的典型解决方案。 它们就像能根据需求进行调整的预制蓝图, 可用于解决代码中反复出现的设计问题。
与具体的算法不同, 设计模式的更加抽象, 同一个设计模式在不同的编程语言与不同的环境下可能会有不同的写法。
大部分模式都有正规的描述方式, 以便在不同情况下使用。 模式的描述通常会包括以下部分:
- 意图部分简单描述问题和解决方案。
- 动机部分将进一步解释问题并说明模式会如何提供解决方案。
- 结构部分展示模式的每个部分和它们之间的关系。
- 在不同语言中的实现提供流行编程语言的代码, 让读者更好地理解模式背后的思想。
部分模式介绍中还列出其他的一些实用细节, 例如模式的适用性、 实现步骤以及与其他模式的关系。
设计模式的坏处
如果你只有一把铁锤, 那么任何东西看上去都像是钉子。
初学者容易滥用、错用设计模式。
设计模式的分类
设计模式根据意图或者目的分, 大约可分为3类, 以下是大概介绍:
- 创建型模式: 提供创建对象的机制, 增加已有代码的灵活性和可复用性
- 工厂方法(Factory)
- 抽象工厂(Abstract Factory)
- 生成器(Builder)
- 原型(Prototype)
- 单例(Singleton)
- 结构型模式: 负责将对象和类组装成较大的结构, 并同时保持结构的灵活和高效
- 适配器(Adapter)
- 桥接(Bridge)
- 组合(Composite)
- 装饰(Decorator)
- 外观(Facade)
- 享元(Flyweight)
- 代理(Proxy)
- 行为模式: 负责对象间的高效沟通和职责委派
- 责任链(Chain of Responsibility)
- 命令(Command)
- 迭代器(Iterator)
- 中介者(Mediator)
- 状态(State)
- 观察者(Observer)
- 备忘录(Memento)
- 策略(Strategy)
- 模版方法(Template Method)
- 访问者(Visitor)