模式时在某情境下,针对某问题的某种解决方案
情境,就是应用某个模式的情况,这应该是会不断出现的情况。
问题,就是你想在某情境下达到的目标,但也可以是某情境下的约束。
解决方案,就是你说追求的一个通用的设计,用来解决约束、达到目标。
如果你发现自己处于某个情境下,面对着所欲达到的目标被一群约束影响着的问题,然而,你能够应用某个设计,客服这些约束并达到该目标,将你领向某个解决方案。
随着发掘的设计模式数目逐渐增加,有必要将它们分级分类,好将它们组织起来,以简化我们寻找模式的过程,并让同一群组内的模式互相比较。
在大多数的类目中,模式通常根据某种做法被归为几类。最广为人知的分类方式,就是第一个模式类目中所采用的方式,根据模式的目标分为三个不同类目:创建型、行为型和结构型。
创建型模式涉及到将对象实例化,这类模式都提供一个方法,将客户从所需要实例化的对象中解耦。
属于这类的设计模式有:
Singleton、Builder、Prototype、Abstract Factory、Factory Method
行为型模式涉及到类和对象如何交互及分配职责。
属于这类的设计模式有:
Template Method、Command、Iterator、Observer、Strategy、Mediator、Visitor、Interpreter、Memento、Chain of Responsibility
结构型模式可以让你把类或对象组合到更大的结构中。
属于这类的设计模式有:
Decorator、Composite、Proxy、Facade、Adapter、Flyweight、Bridge
反模式告诉你如何采用一个不好的解决方案解决一个问题
反模式看起来总像是一个好的解决方案,但是当它真正被采用后,就会带来麻烦。通过将反模式归档,我们能够帮助其他人在实现它们之前,分辨出不好的解决方案。像模式一样,有许多类型的反模式,包括了开发反模式、OO反模式、组织反模式和领域特定反模式。
《Head First 设计模式》 第十三章 与设计模式相处
原文:https://www.cnblogs.com/stone94/p/13204703.html