`
samsongbest
  • 浏览: 170210 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

23个设计模式

 
阅读更多

第一部分 接口型模式

1. Adapter(适配器)模式

Adapter模式的宗旨就是,保留现有类所提供的服务,向客户提供接口,以满足客户的期望。

1.1 接口适配

继承老类,实现新类,实现新类的方法里调用老类方法。

1.2 类和对象适配器

继承新类,老类当属性,继承新类方法里调用老类方法。

 

2. Facade(外观)模式

Facade模式的目的在于提供一个接口,使子系统更加容易使用。

把子系统的类重构为一个个目的明确的类,为了子系统便于使用,在子系统中顺带提供一些示例类或者外观类。

 

3. Composite(组合)模式

让用户用统一的接口处理对象以及对象组合。

 

4. Bridge(桥接)模式

将抽象与抽象方法的实现相分离,让他们可以独自变化。

把不同实现的方法移到一个新的Driver类中,然后把Driver类作为属性。

有名的例子:JDBC数据库驱动程序


第二部分 责任型模式

 

5. Singleton(单例)模式

确保某个类只有一个实例,并提供一个全局访问点。

实现方法一:将单例对象作为单例类的一个静态域创建实例。

private static Factory factory = new Factory();

public static Factory getFactory() {
    if(factory == null) factory = new Factory();
    return factory;
}

 实现方法二(单例和线程):

 

private static Factory factory;
private static Object classLock = Factory.class;

public static Factory getFactory() {
    synchronized(classLock) {
        if(factory == null) factory = new Factory();
        return factory;
    }
}
 

6. Observer(观察者)模式

频繁用于GUI应用程序中。当一个对象状态改变时,所有依赖于这个对象的对象都能得到通知。

继承Observable,在方法中通过notifyObservers()通知观察者。

 

7. Mediator(中介者)模式

广泛用于GUI应用开发。将对象集合之间的交互封装起来,降低耦合程度,避免显式引用。

 

8. Proxy(代理)模式

为对象提供一个代理/占位来控制对对象的访问。

代理对象,实现InvocationHandler接口,实现invoke方法。

 

9. Chain of Responsibility(责任链)模式

让每个对象决定是否有机会处理请求。

 

10. Flyweight(享元)模式

共享的提取出来。


第三部分 构造型模式

 

11. Builder(生成器)模式

将复杂对象的构造逻辑从对象中分离出来。

从配置文件中读取字段,赋给一个bean一样的类,通过这个类来build一个对象。

 

12. Factory Method(工厂方法)模式

创建对象,控制对哪个类进行实例化,不需要具体知道初始化了哪个类,

http://www.jdon.com/designpatterns/designpattern_factory.htm

 

13. Abstract Factory(抽象工厂)模式

创建一系列相互关联或相互依赖的对象。GUI工具包就是一个抽象工厂。这个模式最经典的范例是“外观和感觉”系列——GUI控件族。

 

14. Prototype(原型)模式

不通过实例化来创建一个实例,通过复制一个现有对象来生成新的对象。

可以借助Object.clone()方法,但可能不是开发者想要的副本,进一步复制工作需要由开发者完成。

(是否是浅复制,即对象中的对象属性的对象没有复制?)

 

15. Memento(备忘录)模式

提供状态存储和状态恢复功能。最常用的用法是在应用程序中提供撤销操作。暂时的可以放在容器中,持久化可以放在文本文件中。

 

第四部分 操作型模式

 

16. Template  Method(模板方法)模式

概念: 抽象出方法的框架,包括处理步骤或流程,子类给出具体的实现。

用处:在父类中规范流程,由子类去做不同的实现。

 

TemplateMethod

 

17. State(状态)模式

把状态有关的处理逻辑分散到代表对象状态的各个类中。

 

18. Strategy(策略)模式

可选的策略封装在不同的类中,并在这些类中实现一个共同的操作。

 

19. Command(命令)模式

把请求封装在对象里。

 

20. Interpreter(解释器)模式

 

第五部分 扩展型模式

 

21. Decorator(装饰器)模式

混合操作的不同变化。

 

22.  Iterator(迭代器)模式

提供一个顺序访问集合元素的方法。

 

23. Visitor(访问者)模式

不修改现有类,定义类层次结构的新的操作。

 

保留最后行

分享到:
评论

相关推荐

    设计模式可复用面向对象软件的基础--23个设计模式

    本书设计实例从面向对象的设计中精选出23个设计模式,总结了面向对象设计中最有价值的经验,并且用简洁可复用的形式表达出来。本书分类描述了一组设计良好,表达清楚的软件设计模式,这些模式在实用环境下有特别有用...

    23个设计模式C#代码

    这个压缩包包含的"23个设计模式C#代码"显然是对这23种经典设计模式的C#实现。 1. **单例模式**:保证一个类只有一个实例,并提供全局访问点。在C#中,可以使用静态内部类、懒加载或双检锁来实现。 2. **工厂模式**...

    23个设计模式完整DEMO

    C#版的23个设计模式完整DEMO,包括: 创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、...

    23个设计模式的UML图(visio版)

    这个名为“23个设计模式的UML图(visio版)”的压缩包文件包含了23种经典的GoF(Gang of Four)设计模式的统一建模语言(UML)图。Visio是一款由Microsoft公司开发的图表绘制工具,能够创建各种类型的图表,包括UML...

    GOF的23个设计模式

    《GOF的23个设计模式》是一本经典的设计模式指南,由Erich Gamma、Richard Helm、Ralph Johnson和John Vlissides四位作者(通常称为“Gang of Four”,简称GOF)编写。这本书是软件工程领域的重要里程碑,详细阐述了...

    GOF 23个设计模式

    《GOF 23个设计模式》是一本深入探讨软件设计的经典著作,由Erich Gamma、Richard Helm、Ralph Johnson和John Vlissides四位大师合著,他们被业界尊称为“Gang of Four”(GOF)。这本书详尽阐述了23种经典的设计...

    JDK中的23个设计模式简介

    JDK 中的 23 个设计模式简介 在 Java 开发领域,设计模式是一个非常重要的概念,它能够帮助开发者写出更加灵活、可维护、可扩展的代码。JDK 中也提供了许多设计模式的实现,本文将对其中的 23 个经典设计模式进行...

    23个设计模式C++代码.rar

    这个压缩包“23个设计模式C++代码.rar”包含了对设计模式的C++实现,是学习和理解设计模式的宝贵资源。 首先,我们来看一下三个主要类别:结构型、创建型和行为型设计模式。 1. **结构型设计模式**关注如何组织类...

    23个设计模式图解--学习笔记

    在《23个设计模式图解--学习笔记》中,我们探讨了这些模式,以便于理解和应用到实际开发中。以下是这23个设计模式的详细说明: 1. **工厂方法**(Factory Method):定义一个用于创建对象的接口,让子类决定实例化...

    经典23个设计模式【转】

    这个压缩包包含了C#实现的23个经典设计模式,下面将对这些模式进行详细解释。 1. **单例模式**:确保一个类只有一个实例,并提供全局访问点。在C#中,可以通过静态属性和双重检查锁定来实现线程安全的单例。 2. **...

    23个设计模式C#代码.学习.NET设计模式

    这23个设计模式是软件工程中广泛认可的经典模式,它们源自于Erich Gamma、Richard Helm、Ralph Johnson和John Vlissides合著的《设计模式:可复用面向对象软件的基础》一书,被誉为“Gang of Four”(GoF)的设计...

    23个设计模式源代码

    本资源包含23个设计模式的C++源代码实现,旨在帮助你深入理解和应用这些模式。 1. **单例模式(Singleton)**:确保一个类只有一个实例,并提供全局访问点。在C++中,可以使用静态成员变量或者私有构造函数和友元...

    Java23个设计模式简单示例

    以下是这23个设计模式的详细说明: 1. **单例模式**:保证一个类只有一个实例,并提供全局访问点。示例中可能包含Singleton类,通过私有构造器和静态工厂方法来控制实例化。 2. **工厂模式**:提供一个接口用于...

    23个设计模式源码案例.zip

    本项目主要基于《大话设计模式》这本书,对该书的设计原则和23个设计模式进行解读,原书是C#语言编写,本项目使用其他各种编程语言进行代码重写,供大家了解其他语言在设计模式中的编程方式和技巧。   ...

    23种设计模式整理pdf

    设计模式详解 设计模式是软件开发中的一...在本文中,我们对23种常见的设计模式进行了整理和解释,每种模式都有其优点和缺点,开发者可以根据实际情况选择合适的设计模式,以提高代码的可重用性、可维护性和可扩展性。

Global site tag (gtag.js) - Google Analytics