设计模式简单介绍和分组
一、创建型:处理对象构造和引用。它们将对对象实例的实例化责任从客户代码中抽象处理,从而让代码保持松散耦合,将创建复杂对象的责任放在一个地方,这遵循了单一责任原则和分离关注点原则。
1.Abstract Factory(抽象工厂):提供一个接口来创建一组相关的对象。
2.Factory Method(工厂方法):支持使用一个类来委托创建有效对象的责任。
3.Builder(生成器):将对象本身的构造分离出来,从而能构造对象的不同版本。
4.Prototype(原型):能够从一个原型实例来复制或克隆类,而不是创建新实例。
5.Singleton(单例):支持一个类只实例化一次,并只有一个可用来访问它的全局访问点。
二、结构型:结构模型处理对象的组合与关系,以满足大型系统的需求。
1.Adapter(适配器):使不兼容接口的类能够一起使用。
2.Bridge(桥接):将抽象与其实现分离,允许实现和抽象彼此独立的变化。
3.Composite(组合):可以像对待对象的单个实例那样来对待一组表示层次结构的对象。
4.Decorator(装饰):能够动态包装一个类并扩展其行为。
5.Facade(门面):提供一个简单的接口并控制对一组复杂接口和子系统的访问。
6.Flyweight(享元):提供一种在许多小类之间高效共享数据的方式。
7.Proxy(代理):为一个实例化成本很高的更复杂的类提供一个占位符。
三、行为型:
1.Chain of Responsibility(责任链):允许将命令动态链接起来处理请求。
2.Command(命令):将一个方法封装成一个对象。并将该命令的执行与它的调用者分离。
3.Interpreter(解释器):指定如何执行某种语言中的语句。
4.Iterator(迭代器):提供以形式化的方式来导航集合的方法。
5.Mediator(中介者):定义一个对象,可以让其他两个对象进行通信而不必让它们指定彼此。
6.Memento(备忘录):允许将对象恢复到以前的状态。
7.Observer(观察者):定义一个或者多个类在另一个类发生变化时接到报警。
8.State(状态):允许对象通过委托给独立的,可改变的状态对象来改变自己的行为。
9.Strategy(策略):能够将算法封装到一个类中并运行时转换,以改变对象的行为。
10.Template Method(模板方法):定义算法流程控制,但允许子类重写或实现执行步骤。
11.Visitor(访问者):能够在类上执行新的功能而不影响类的结构