跟我一起学设计模式
设计模式是针对软件设计中常见问题的解决方案的一种描述或模板。它们被视为能够提高代码质量和可维护性,以及降低开发时间和成本的最佳实践。
设计模式可以分为三大类:
- 创建型模式:这些模式处理对象的创建过程,包括如何实例化对象、如何管理对象的生命周期等。常见的创建型模式包括简单工厂模式、工厂方法模式、抽象工厂模式、建造者模式、原型模式、单例模式等。
- 结构型模式:这些模式涉及对象之间的关系,包括如何组成更大的结构和如何将对象组合成更大的对象,以提供更高级别的功能。常见的结构型模式包括适配器模式、桥接模式、组合模式、装饰模式、外观模式、享元模式和代理模式等。
- 行为型模式:这些模式关注对象之间的通信和交互,包括如何在对象之间传递消息和如何处理和响应这些消息。常见的行为型模式包括责任链模式、命令模式、解释器模式、迭代器模式、中介者模式、备忘录模式、观察者模式、状态模式、策略模式、模板方法模式和访问者模式等。
每种设计模式都有其独特的特点和应用场景,开发人员可以根据具体需求和情况选择合适的模式来解决问题。同时,设计模式并不是万能的,过度使用设计模式可能会导致代码过于复杂,难以维护和扩展。因此,在使用设计模式时需要遵循适当的规范和原则。
创建型模式 · 结构型模式 · 行为型模式 · J2EE模式 · 六大原则
每种模式可以从以下几个方面来理解:
- 模式名称(Pattern Name):每一个模式都有自己的名字,模式的名字使得我们可以讨论我们的设计。
- 问题(Problem):在面向对象的系统设计过程中反复出现的特定场合,它导致我们采用某个模式。
- 解决方案(Solution):上述问题的解决方案,其内容给出了设计的各个组成部分,它们之间的关系、职责划分和协作方式。
- 效果(Consequence):采用该模式对软件系统其他部分的影响,比如对系统的扩充性、可移植性的影响。影响也包括负面的影响。
- 别名(Also Known As):一个模式可以有超过一个以上的名称。这些名称应该要在这一节注明。
- 动机(Motivation):该模式应该利用在哪种情况下是本节提供的方案(包括问题与来龙去脉)的责任。
- 应用(Applicability)
- 结构(Structure):这部分常用类图与互动图阐述此模式。
- 参与者(Participants):这部分提供一份本模式用到的类与物件清单,与它们在设计下扮演的角色。
- 合作(Collaboration):描述在此模式下,类与物件间的互动。
- 结果(Consequences):这部分应描述使用本模式後的结果、副作用、与交换(trade-off)
- 实现(Implementaion):这部分应描述实现该模式、该模式的部分方案、实现该模式的可能技术、或者建议实现模式的方法。
- 例程(Sample Code):示范程式。
- 已知应用(Known Uses):业界已知的实做范例。
- 相关模式(Related Patterns):这部分包括其他相关模式,以及与其他类似模式的不同。