史上最全的设计模式

一、概述。软件模式包括设计模式,架构模式,分析模式和过程模式等,软件生存周期的各个阶段都存在这被认同的模式。在软件开发领域,目前研究最为深入的是设计模式,设计模式是一套被反复使用,多数人知晓的,代码设计经验的总结,使用设计模式的目的是提高代码的可重用性。

二、模式分类。根据目的和用途不同,模式分为创建模式,结构模式和行为模式三种。创建模式主要用于创建对象,结构模式主要用于处理类和对象之间的组合,行为模式主要用于类或对象的交互以及职责分配。

1、创建模式

工厂方法模式属于类的创建模式,父类负责定义创建对象的接口,子类负责生成具体对象。这样做的目的是将类的创建延迟或下沉到子类中完成。
抽象工程模式属于对象的创建模式,它提供了一个创建一系列相关或相互依赖对象的接口,而无需指定他们具体的类。在此模式中,引入产品等级结构和产品族的概念,产品等级接口是指抽象产品与具体产品所构成的继承层次关系,产品族是同一个工长所生产的一系列产品,即位于不同等级结构且功能相关联的产品组成的集合。
原型模式属于对象的创建模式,原型模式通过一个原型对象给出所要创建对象的类型,然后通过复制这个原型对象,创建处更多的同类型的对象。复制或克隆除了对象本身被复制外,对象所包含的引用也被复制。
单例模式单例模式确保某一个类只有一个实例
建造者模式属于对象的创建模式,建造者模式强调将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示,构建模式是一步一步地创建一个复杂的对象,它允许用户只通过指定复杂对象的类型和内容就可以构建他们,用户不需要知道具体构建细节。

二 、结构模式

桥接模式属于对象的结构模式,桥接模式将抽象部分和它的实现部分分离,使他们都可以独立地变化。
组合模式属于对象的结构模式,组合模式又称整体与部分模式,在组合模式种,通过组合多个对象形成树形结构以表示整体与部分的结构层次。
装饰模式

属于对象的结构模式,可动态地给一个都下个增加一些额外的职责,就增加对象功能来说,装饰模式生成子类实现更为灵活。通过装饰模式,可以在不影响其他对象的情况下,以动态,透明的方式给单个对象添加职责

使用场景:

1)、当需要动态地给一个对象增加功能,这些功能可以在再动态地撤销;

2)、当不能使用生成子类的方法进行扩充时也可以使用装饰模式。

外观模式

属于对象的结构模式,要求外部与一个系统的通信必须通过一个统一的外观对象进行,为子系统中的一组接口提供一个一致的界面。外观模式定义一个高层接口,这个接口使得子系统更加容易使用。

享元模式属于对象的结构模式,通过共享技术有效地支持大量细粒度的对象。享元模式能做到共享的关键是区分内部和外部状态,内部状态存储在享元对象内部而且不会随环境改变而改变,因此内部状态可以共享,外部状态是随环境变化而变化。
代理模式属于对象的结构模式,可为某个对象提供一个代理,并由代理对象控制对原对象的引用。代理模式能够协调调用者和被调用者,在一定程度上降低系统的耦合度
适配器模式适配器模式将一个接口转换成客户系统的另一个接口,从而可以接口不兼容的那些类可以一起工作。

三、行为模式

职责链模式避免请求的发送者与接收者耦合在一起,让多个对象都有可能接收请求,将这些对象连成一个链条,并且沿着这个链条传递请求,直到有对象处理它为止。
命令模式类似与传统程序设计方法中的回调机制,它将一个请求封装成一个对象,从而使得可用不同的请求对客户进行参数化,支持可撤销操作。命令模式使对命令的封装,将发出命令的责任和执行命令的责任分隔开,委派给不同的对象,以实现发送者和接收者的完全解耦,提供更大的灵活性和可扩展性。
解释器模式描述了如何为语义定义一个文法,如何在该语言中表示一个句子,以及如何解释这个句子,这里的语言是使用规定格式和语法的代码。
中介者模式通过一个中介对象来封装一系列的交互,中介者对象使得各个对象不需要现实地互相引用,从而使其耦合松散。中介者对象的存在保证了对象结构上的稳定,即系统不会因为新对象的引入带来大量的修改工作。
备忘录模式即发布-约定模式,它定义了对象之间的一种一对一的依赖关系,使得没当一个对象状态发生改变时,其相关依赖的对象都得到通知并被自动更新。优点:实现了表示层和数据层的分离,并定义了稳定的消息传递机制。
状态模式允许一个对象在其内部状态改变时改变它的行为,状态模式封装了状态的转换过程,但是它需要枚举的可能状态。
策略模式定义一些列的算法,并将每一个算法封装起来,并让他们可以互相替换。
模板方法模式用户定义一个算法的骨架,而将实现步骤下沉到不同之类
访问者模式用于表示一个作用于某对象结构中的各元素的操作,它使得用户可以在不改变各元素的类的前提下定义作用于这些元素的新操作。


 

  • 9
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值