【设计模式】三大类型

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/horizon_junmowen/article/details/81367176

这里写图片描述
创建型模式–>对象怎么来
结构型模式–>对象和谁有关
行为型模式–>对象与对象在干嘛

下面为大家介绍这三种类型:

创建型模式

创建型模式就是用来创建对象的模式,抽象了实例化的过程。所有的创建型模式都有两个共同点。第一,它们都将系统使用哪些具体类的信息封装起来;第二,它们隐藏了这些类的实例是如何被创建和组织的。创建型模式包括单例模式、工厂方法模式、抽象工厂模式、建造者模式和原型模式。

单例模式:解决的是实例化对象的个数的问题,比如抽象工厂中的工厂、对象池等,除了Singleton之外,其他创建型模式解决的都是 new 所带来的耦合关系。

抽象工厂:创建一系列相互依赖对象,并能在运行时改变系列。

工厂方法:创建单个对象,在Abstract Factory有使用到。  

原型模式:通过拷贝原型来创建新的对象。

建造者、工厂方法,抽象工厂, 都需要一个额外的工厂类来负责实例化“一个对象”。

结构型模式

结构型模式,顾名思义讨论的是类和对象的结构 ,主要用来处理类或对象的组合。它包括两种类型,一是类结构型模式,指的是采用继承机制来组合接口或实现;二是对象结构型模式,指的是通过组合对象的方式来实现新的功能。它包括适配器模式、桥接模式、装饰者模式、组合模式、外观模式、享元模式和代理模式。

适配器模式——注重转换接口,将不吻合的接口适配对接 

桥接模式——注重分离接口与其实现,支持多维度变化 

组合模式——注重统一接口,将“一对多”的关系转化为“一对一”的关系 

装饰者模式——注重稳定接口,在此前提下为对象扩展功能 

外观模式——注重简化接口,简化组件系统与外部客户程序的依赖关系 

享元模式——注重保留接口,在内部使用共享技术对对象存储进行优化 

代理模式——注重假借接口,增加间接层来实现灵活控制

行为型模式

行为型模式是对在不同对象之间划分责任和算法的抽象化。行为模式不仅仅关于类和对象,还关于它们之间的相互作用。行为型模式又分为类的行为模式和对象的行为模式两种。

类的行为模式——使用继承关系在几个类之间分配行为。
对象的行为模式——使用对象聚合的方式来分配行为。

  
行为型模式包括11种模式:模板方法模式、命令模式、迭代器模式、观察者模式、中介者模式、状态模式、策略模式、责任链模式、访问者模式、解释器模式和备忘录模式。

模板方法模式:封装算法结构,定义算法骨架,支持算法子步骤变化。

命令模式:注重将请求封装为对象,支持请求的变化,通过将一组行为抽象为对象,实现行为请求者和行为实现者之间的解耦。

迭代器模式:注重封装特定领域变化,支持集合的变化,屏蔽集合对象内部复杂结构,提供客户程序对它的透明遍历。

观察者模式:注重封装对象通知,支持通信对象的变化,实现对象状态改变,通知依赖它的对象并更新。

中介者模式:注重封装对象间的交互,通过封装一系列对象之间的复杂交互,使他们不需要显式相互引用,实现解耦。

状态模式:注重封装与状态相关的行为,支持状态的变化,通过封装对象状态,从而在其内部状态改变时改变它的行为。

策略模式:注重封装算法,支持算法的变化,通过封装一系列算法,从而可以随时独立于客户替换算法。

责任链模式:注重封装对象责任,支持责任的变化,通过动态构建职责链,实现事务处理。

访问者模式:注重封装对象操作变化,支持在运行时为类结构添加新的操作,在类层次结构中,在不改变各类的前提下定义作用于这些类实例的新的操作。

备忘录模式:注重封装对象状态变化,支持状态保存、恢复。

解释器模式:注重封装特定领域变化,支持领域问题的频繁变化,将特定领域的问题表达为某种语法规则下的句子,然后构建一个解释器来解释这样的句子,从而达到解决问题的目的。

猜你喜欢

转载自blog.csdn.net/horizon_junmowen/article/details/81367176