`

23种设计模式

 
阅读更多

 

学习参考:http://wenku.baidu.com/view/6c455cf80242a8956bece46f.html 

 

设计模式应用:http://tech.it168.com/focus/200902/java-design/index.html 

 

一、设计模式总体概述: 

 

模式的概念最早是出现在城市建筑领域的。lexander的一本关于建筑的书中明确的给出了模式的概念,用来解决在建筑中的一些问题。后来,这个概念逐渐的被计算机科学所采纳。《Design Patterns: Elements of Reusable Object-Oriented Software》[1](以下简称《设计模式》)则堪称设计模式领域的经典书籍之一。它开创了软件工程领域的模式化进程。 

  设计模式的简单定义就是对于一类重复出现的问题的可重用的解决方案。在软件工程中一个设计模式解决一类软件设计问题。设计模式中许多方法其实很早就出现了,并且在应用中也比较多。但是直到《设计模式》出来之前,并没有一种统一的认识。或者说,那时候并没有对模式形成一个概念。这些方法还仅仅是处在经验阶段,并没有能够被系统的整理,形成一种理论。 

  每一个设计模式都系统的命名,解释和评价了面向对象系统中的一个重要的和重复出现的设计。这样,我们只要搞清楚这些设计模式,就可以完全或者说很大程度上吸收了那些蕴含在模式中的宝贵的经验,对面向对象的系统能够有更为完善的了解。更为重要的是,这些模式都可以直接用来指导面向对象系统中至关重要的对象建模问题。如果有相同的问题背景,那么很简单,直接套用这些模式就可以了。这可以省去你很多的工作。 

  在《设计模式》一书中涉及到23个模式,被分类为创建型模式(Creational Patterns),结构型模式(Structural Patterns)和行为模式(Behavioral Patterns),分别从对象的创建,对象和对象间的结构组合以及对象交互这三个方面为面向对象系统建模方法给予了解析和指导。  其中创建型设计模式(Creational Patterns)描述怎样创建一个对象。它隐藏对象创建的细节,使程序代码不依赖具体的对象,这样当我们增加一个新的对象时几乎不需要修改代码。结构型设计模式(Structural Patterns)描述类和对象之间怎么组织起来形成大的结构,主要使用继承来组织接口或实现。行为型设计模式(Behavioral Patterns)描述算法以及对象之间的任务分配,它所描述的不仅仅是对象或类的设计模式,还有它们之间的通讯模式。 

 

 

 

 

 

二、各种设计模式简介 

 

创建型模式(Creational Pattern) 

1、 抽象工厂模式(Abstract Factory Pattern) 

介绍 

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

 

2、 建造者模式(Builder Pattern) 

介绍 

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

 

3、 原型模式(Prototype Pattern) 

介绍 

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

 

4、 工厂方法模式(Factory Method Pattern) 

介绍 

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

 

子类。 

 

5、 单例模式(Singleton Pattern) 

介绍 

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

 

 

结构型模式(Structural Pattern) 

6、 适配器模式(Adapter Pattern) 

介绍 

将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那 

 

些类可以一起工作。 

 

7、 桥接模式(Bridge Pattern) 

介绍 

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

 

8、 组合模式(Composite Pattern) 

介绍 

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

 

性。 

 

9、 装饰模式(Decorator Pattern) 

介绍 

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

 

 

10、 外观模式或门面模式(Facade Pattern) 

介绍 

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

 

实际应用:其实web开发中的的Service层就是一个典型的外观模式。 

 

 

 

11、 享元模式(Flyweight Pattern) 

介绍 

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

 

12、 代理模式(Proxy Pattern) 

介绍 

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

 

 

行为型模式(Behavioral Pattern) 

13、 责任链模式(Chain of Responsibility Pattern) 

介绍 

为解除请求的发送者和接收者之间耦合,而使多个对象都有机会处理这个请求。将这些对象连成一条链,并 

 

沿着这条链传递该请求,直到有一个对象处理它。 

 

14、 命令模式(Command Pattern) 

介绍 

将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以 

 

及支持可取消的操作。 

 

15、 解释器模式(Interpreter Pattern) 

介绍 

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

 

16、 迭代器模式(Iterator Pattern) 

介绍 

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

 

17、 中介者模式(Mediator Pattern) 

介绍 

用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地相互引用,从而使其耦合松散,而 

 

且可以独立地改变它们之间的交互。 

 

18、 备忘录模式(Memento Pattern) 

介绍 

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

 

象恢复到保存的状态。 

 

19、 观察者模式(Observer Pattern) 

介绍 

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

 

自动刷新。 

 

20、 状态模式(State Pattern) 

介绍 

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

 

21、 策略模式(Strategy Pattern) 

介绍 

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

 

它的客户。 

 

22、 模板方法模式(Template Method Pattern) 

介绍 

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

 

法的结构即可重定义该算法的某些特定步骤。 

 

23、 访问者模式(Visitor Pattern) 

介绍 

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

 

素的新操作。 


分享到:
评论

相关推荐

    C_设计模式(23种设计模式)

    C_设计模式(23种设计模式)C_设计模式(23种设计模式)C_设计模式(23种设计模式)C_设计模式(23种设计模式)C_设计模式(23种设计模式)C_设计模式(23种设计模式)C_设计模式(23种设计模式)C_设计模式(23种设计模式)C_设计...

    23种设计模式23种设计模式

    根据题目给出的信息,“23种设计模式”显然是一个重点,这通常指的是Erich Gamma、Richard Helm、Ralph Johnson和John Vlissides(四人也被称为Gang of Four,简称GoF)在他们著名的著作《设计模式:可复用面向对象...

    GOF23种设计模式

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

    C++ 23种设计模式1

    《C++ 23种设计模式1》是关于软件工程中设计模式的深入解析,主要聚焦于C++语言的实现。设计模式是经过时间和实践验证的解决方案,它们针对常见的编程问题提供了一套标准的模板,使得开发者能够更高效地编写可复用、...

    Java之23种设计模式解析

    本资源“Java之23种设计模式解析”源自尚硅谷教育机构,由宋红康老师主讲的“玩转Java”系列课程。这份资料详细介绍了在Java编程中常用的23种设计模式,旨在提升开发者对于软件设计的理解和应用能力,从而写出更加...

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

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

    23种 设计模式

    在《设计模式》课件中,详细讲解了23种经典的GOF(GoF,Gamma, Helm, Johnson, Vlissides)设计模式,这些模式分为三大类:创建型、结构型和行为型。 1. 创建型设计模式: - 单例模式:确保一个类只有一个实例,并...

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

    ### 设计模式精解——GoF 23种设计模式解析及C++实现源码 #### 引言 设计模式是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。GoF(Gang of Four)所提出的23种设计模式,被认为是面向对象...

    23种设计模式(C++).pdf

    《设计模式精解-GoF 23 种设计模式解析附 C++实现源码》是一本深入探讨软件设计模式的书籍,它涵盖了创建型、结构型和行为型三种主要类型的23个经典设计模式,并提供了C++语言的实现代码。设计模式是软件工程中的...

    23种设计模式彩图-pdf高清版

    《23种设计模式彩图-PDF高清版》是一本专注于设计模式的教材,它不仅仅提供文字性的描述,而是结合了色彩丰富的UML(统一建模语言)图示,帮助读者以更直观的方式理解和记忆这23种设计模式。设计模式是软件工程中...

    23种设计模式(C++)

    ### 23种设计模式(C++)精解 #### 引言 设计模式是软件工程领域的一个重要组成部分,它提供了一套解决常见问题的有效方法。在《23种设计模式(C++)》这一资源中,作者详细解析了GoF(Gang of Four)所提出的23种设计...

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

    ### 设计模式精解——GoF 23种设计模式解析及C++实现源码 #### 0. 引言 设计模式是软件工程领域的一个重要概念,它提供了一种解决常见问题的方法论。GoF(Gang of Four)所提出的23种设计模式被视为面向对象设计的...

    23种设计模式文档

    本资源包含的是关于Java语言实现的23种经典设计模式的文档,下面将对这些模式进行详细介绍。 1. **单例模式**:确保一个类只有一个实例,并提供全局访问点。在Java中,可以使用双重检查锁定、静态内部类或者枚举来...

    C# 23种设计模式(中文高清带书签)

    《C# 23种设计模式》是一本深入解析C#编程中常用设计模式的权威指南,对于想要提升代码质量、提高软件可维护性的开发者来说,是不可或缺的参考资料。书中详细介绍了23种经典的设计模式,这些模式是软件工程实践中...

    java23种设计模式+23个实例demo

    java23种设计模式+23个实例demo: 关于代码的几点说明: 1. 代码为根据个人对Design Pattern的学习理解写出, 2. 每个Pattern均是一个目录,其目录名即是Pattern的名字, 所有代码用JDeveloper 9i 和JBuilder 6.0编写...

    C++ 23种设计模式.zip

    本资源"**C++ 23种设计模式.zip**"包含了C++版本的设计模式详细讲解,旨在帮助开发者提升编程技能和团队协作效率。 1. **单例模式(Singleton)**:确保一个类只有一个实例,并提供一个全局访问点。在C++中,可以...

    java之23种设计模式完整代码

    这里我们探讨的“Java之23种设计模式完整代码”是一份宝贵的资源,它包含了所有23种经典设计模式的实现示例。这份资料能够帮助开发者深入理解每种设计模式的概念、应用场景以及它们之间的差异。 设计模式是经过时间...

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

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

Global site tag (gtag.js) - Google Analytics