`
zhuyingya87
  • 浏览: 34435 次
  • 性别: Icon_minigender_2
  • 来自: 深圳
社区版块
存档分类
最新评论

一句话总结GOF的23种设计模式

阅读更多
一句话总结GOF的23种设计模式

一、创建型模式
    Abstract Factory:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。

    Builder:将一个复杂对象的构件与它的表示分离,使得同样的构建过程可以创建不同的表述。

    Factory Method:定义一个用于创建对象的接口,让子类决定将哪一个类实例化。Factory Method使一个类的实例化延迟到其子类。

    Prototype:用原型实例指定创建对象的种类,并且通过拷贝这个原型来创建新的对象。

    Singleton:保证一个类仅有一个实例,并提供一个访问它的全局访问点。

二、结构型模式
    Adapter:将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。

    Bridge:将抽象部分与它的实现部分分离,使它们都可以独立地变化。

    Composite:将对象组合成树型结构以表示“部分-整体”的层次结构。Composite使得客户对单个对象和复合对象的使用具有一致性。

    Decorator:动态地给一个对象添加一些额外的职责。就扩展功能而言,Decorator模式比生成子类方式更为灵活。

    Facade:为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。

    Flyweight:运用共享技术有效地支持大量细粒度的对象。

    Proxy:为其他对象提供一个代理以控制对这个对象的访问。

三、行为型模式
    Chain of Responsibility:为解除请求的发送者和接受者之间耦合,而使多个对象都有机会处理这个请求。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它。

    Command:将一个请求封装为一个对象,从而使你可以用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可取消的操作。

    Interpreter:给定一个语言,定义它的文法的一种表示,并定义一个解释器,该解释器使用该表示来解释语言中的句子。

    Iterator:提供一种方法顺序访问一个聚合对象中各个元素,而又不需暴露该对象的内部表示。

    Mediator:用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地相互引用,从而使器耦合松散,而且可以独立地改变它们之间的交互。

    Memento:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可以将该对象恢复到保存的状态。

    Observer:定义对象间的一种一对多的依赖关系,以便当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并自动刷新。

    State:允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它所属的类。

    Strategy:定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换。本模式使得算法的变化可独立于使用它的客户。

    Template Method:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。Template Method使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。

    Visitor:表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。
分享到:
评论

相关推荐

    GOF23种设计模式

    GOF(GoF)23种设计模式,是由Erich Gamma、Richard Helm、Ralph Johnson和John Vlissides四位大神在他们的著作《设计模式:可复用面向对象软件的基础》中提出的,这些模式分为创建型、结构型和行为型三大类。...

    设计模式精解- GoF 23种设计模式解析附C++实现源码

    设计模式精解- GoF 23种设计模式解析附C++实现源码 懂了设计模式,你就懂了面向对象分析和设计(OOA/D)的精要。反之好像也可能成立。道可道,非常道。道不远人,设计模式亦然如此。 一直想把自己的学习经验以及在...

    设计模式精解-GoF 23种设计模式解析附C++实现源码

    GoF(Gang of Four)所提出的23种设计模式,被认为是面向对象编程中最核心的设计原则之一。这些模式可以帮助开发者解决常见的编程问题,并提高代码的可复用性和可维护性。 #### 创建型模式 创建型模式关注的是对象...

    设计模式精解-GoF 23种设计模式解析附C++.pdf

    ### 设计模式精解——GoF 23种设计模式解析及C++实现 #### 0. 引言 设计模式作为面向对象编程的核心组成部分,是软件开发者在长期实践中总结出来的最佳实践。通过深入理解这些设计模式,我们可以更好地进行面向...

    设计模式精解-GoF23种设计模式解析附C++实现源码

    GoF(Gang of Four)23种设计模式是软件开发中的经典,由Erich Gamma、Richard Helm、Ralph Johnson和John Vlissides四位专家在《设计模式:可复用面向对象软件的基础》一书中提出。这些模式为程序员提供了一种通用...

    设计模式精解-GoF 23种设计模式解析附C++实现源码.pdf

    GoF(Gang of Four)所提出的23种设计模式被视为面向对象设计的核心内容之一。本文旨在深入解析这些设计模式,并通过C++实现来帮助读者更好地理解和应用这些模式。 #### 1. 创建型模式 创建型模式关注的是对象的...

    设计模式精解-GoF 23 种设计模式解析附 C++实现源码.pdf

    设计模式精解- GoF 23 种设计模式解析附 C++实现源码 目 录 0 引言 ...........................................................................................................................................

    设计模式精解-GoF 23种设计模式精解JAVA版 PDF

    著名的EJB领域顶尖的专家Richard Monson-Haefel在其个人网站:www.EJBNow.com中极力推荐的GoF的《设计模式》,原文如下: Design ...就Java语言体系来说,GOF的设计模式是Java基础知识和J2EE框架知识之间一座隐性的"桥"。

    设计模式精解-GoF-23种设计模式解析--附C++源代码

    这本书详细阐述了23种设计模式,这些模式被广泛应用于各种编程语言,包括C++。 1. **创建型模式**:这类模式主要关注对象的创建过程,它们提供了一种在不指定具体类的情况下创建对象的方法,使得系统更加灵活和可...

    GoF 23种设计模式解析 代码整理

    GoF 23种设计模式解析 代码整理,对pdf文档的代码有略微修改,另外增加了读者自己的注释。

    设计模式精解-GoF23种设计模式解析附C++实现

    设计模式精解-GoF23种设计模式解析附C++实现,给出了设计模式"圣经"-GOF列出的全部23种设计模式的C++实现,清晰,易懂。

    GOF23种设计模式C#实现

    以上就是GOF23种设计模式的简介。通过学习和实践这些模式,开发者可以提高代码的可读性、可维护性和复用性,更好地应对复杂系统的设计挑战。C#语言的实现使得这些模式更易于理解和应用到实际项目中。

    GoF 23种设计模式解析.pdf

    《GoF 23种设计模式解析》这本书详细介绍了由Erich Gamma等四位作者(通常称为GoF四人组)所总结出的23种经典设计模式,并提供了基于C++语言的实现示例。 #### 创建型模式 创建型模式关注的是对象的创建机制,它们...

    GOF23种设计模式源码

    在Visual Studio 6.0环境下编译执行的GOF23种设计模式源码,为我们提供了一个直接学习和理解这些模式实际应用的平台。通过阅读和运行这些源码,开发者可以深入理解每种模式的核心思想,学习如何在实际项目中有效地...

    GOF 23种设计模式

    《GOF 23种设计模式》是软件工程领域中极具影响力的一本书,由Erich Gamma、Richard Helm、Ralph Johnson和John Vlissides四位大师合著,因此也被称为“Gang of Four”(GOF)的设计模式。这本书详细阐述了在面向...

    GoF 23种设计模式解析及实现源码

    GoF(Gang of Four)23种设计模式是软件工程中的经典,由Erich Gamma、Richard Helm、Ralph Johnson和John Vlissides四位作者在《设计模式:可复用面向对象软件的基础》一书中提出。这些模式为创建可维护、可扩展...

    设计模式精解-GoF 23 种设计模式解析附 C++实现源码

    设计模式精解-GoF 23 种设计模式解析附 C++实现源码高清PDF扫描版本

Global site tag (gtag.js) - Google Analytics