一、简介
目录
设计模式是由GoF (Gang of Four)首先提出的,它是解决特定问题的解决方案。设计模式本身是一种发现,而不是一种发明。学习设计模式可以让我们从别人的成功经验中获取新的灵感,从而写出更优秀的代码。
设计模式的主要特点如下:
- 它们是语言无关的,可以用多种语言实现。
- 它们是动态的,随时会有新的模式引入。
- 它们可以进行定制,因此对开发人员非常有用。
设计模式是已知问题的解决方案。因此,设计模式在分析或设计阶段非常有用,并且如预期的那样,在开发阶段也非常有用,因为它们与应用的编程直接相关。
二、优点
- 它们可以在多个项目中重复使用
- 问题可以在架构级别得到解决.
- 它们都经过了时间的验证和良好的证明,是开发人员和架构师的宝贵经验
- 它们具有可靠性和依赖性
三、适用性
- 参与者:它们是在设计模式中用到的类。类可以在模式中扮演不同的角色,以完成多个目标。
- 非功能需求:诸如内存优化、可用性和性能等需求都属于此类型。由于这些因素影响整个软件解决方案,因此至关重要。
- 权衡:并非所有的设计模式都适合于应用程序开发,因此需要权衡。这些是在应用程序中使用设计模式时所做的决策。
- 结果:如果上下文不合适,设计模式可能对代码的其他部分产生负面影响。开发人员应该了解设计模式的结果和用途。
四、分类
4.1 创建型
4.1.1 特点
- 运行机制基于对象的创建方式
- 将对象创建的细节隔离开来。
- 代码与所创建的对象的类型无关
4.1.2 示例
单例模式
4.2 结构型
4.2.1 特点
- 致力于设计出能够通过组合获得更强大功能的对象和类的结构
- 重点是简化结构并识别类和对象之间的关系
- 主要关注类的继承和组合
4.2.2 示例
适配器模式
4.3 行为型
4.3.1 特点
- 关注对象之间的交互以及对象的响应性
- 对象应该能够交互,同时仍然保持松散耦合
4.3.2 示例
观察者模式