`
hugh.wangp
  • 浏览: 289141 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

【学习】设计模式-创建型模式(1)

    博客分类:
  • JAVA
阅读更多

 

创建型模式:

用来创建对象的模式,是对类的实例化过程的抽象化,它帮助一个系统独立于如何创建、组合和表示它的那些对象,即为了使体系结构更加清晰,有些软件在设计上要求当创建类的具体实例时,能够根据具体的语境来动态地决定怎样创建对象,创建哪些对象,以及怎样组织和表示这些对象。

 

按照生成目标的不同,创建型模式可以分为类的创建型模式和对象的创建型模式。

类的创建型模式:通过使用继承关系,将类的创建交由具体的子类来完成,这样就向外界隐藏了如何得到具体类的实现细节,以及这些类的实例是如何被创建和组织在一起的。

对象的创建型模式:通过把对象的创建委托给另一个对象来完成,可以根据语境动态地决定生成哪些具体类的实例,同时还可以向外界隐藏这些实例是如何被创建以及如何被组织在一起的细节。

 

所有创建型模式都有两个永恒的主旋律:

第一,它们都将系统使用哪些具体类的信息封装起来。

第二,它们隐藏了这些类的实例时如何被创建和组织的,外界对于这些对象只知道它们共同的接口,而不清楚其具体的实现细节。正因如此,创建型模式在创建什么(what),由谁(who)创建,以及何时(when)创建这些方面,都为设计者提供了尽可能大的灵活性。

 

对实例化过程进行分离和抽象有如下方法

对象委托:将对象的创建委托给专门的工厂对象,这样对于工厂所创建的对象就可以集中管理,并向客户端隐藏实际类型信息,客户端所知道的只是所使用(包含)对象的接口,这样当需要对这些对象进行类型、结构调整时就可以非常方便和统一。

类继承:通过在父类中创建对象的接口,从而当子类在需要的时候就可以通过重新实现该接口来创建其他类型的对象。

实例注入:客户端不需要知道所创建/使用的对象的具体类型,而只需要知道在实际运行的时候会得到这些对象的原型,当需要创建对象时仅克隆所得到的原型即可。

 

设计模式

描述

分离和抽象的方法

注意事项

单件(Singleton)

保证一个类仅有一个实例,自行实例化后提供一个该实例全局的访问点

 

1.构造函数privateprotected,防止外部实例化
2.
双层锁定实例化,防止多线程的多个实例化
3.
类要封装,防止被继承后派生添加实例
4.
饿汉、懒汉两种类型,各有千秋

抽象工厂(AbstractFactory)

提供一个接口,让该接口负责创建一系列"相关或相互依赖的对象",无需指定他们的具体类

对象委托

 

建造者(Builder)

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

对象委托

各细节流程不同,但装配方式一致时,可以使用建造者模式以规范流程

工厂方法(FactoryMethod)

定义一个用于创建对象的接口,让子类决定实例化哪个类(使一个类的实例化延迟到子类)

类继承

1.包含了必要的逻辑判断,根据客户端的选择条件动态实例化相关类,对于客户
端,去除了与具体产品的依赖
2.
使用添加新功能时,只要修改客户端代码

原型(Prototype)

指定创建对象的种类,然后通过拷贝这些原型来创建新的对象

实例注入

1.clone 浅拷贝,复制值类型,不复制引用类型
2.copy
深拷贝,值类型与引用类型都做复制

 

 

参考资料:

http://blog.csdn.net/qinysong/article/details/1009950

http://www.cnblogs.com/flashlm/archive/2009/02/10/CreationalPatterns.html

http://www.cnblogs.com/kid-li/archive/2006/10/25/539802.html

 

 

分享到:
评论

相关推荐

    最新设计模式超级详解+Tomcat架构源码分析+Spring源码分析 资深级设计模型课程

    最新设计模式超级详解课程,课程深入浅出的探讨了设计模式总览,创建型模式、结构型模式、行为模式的技术教学堪称经典。Spring源码分析,web源码分析,Tomcat架构...├─day01-总览设计模式-07-创建型模式-工厂-工厂

    设计模式--C++

    3.2 Builder(生成器)—对象创建型模式 633.3 Factory Method(工厂方法)—对象创建型模式 70 3.4 Prototype(原型)—对象创建型模式 87 3.5 Singleton(单件)—对象创建型模式 84 3.6 创建型模式的讨论 89 第 4...

    后端-设计模式-java-精讲

    这是一篇关于设计模式的PDF,其内容涵盖了面向对象编程,设计原则,以及创建型模式、结构型模式、和行为型模式等。该文件共有3页,包含了设计模式的分类和具体的模式实现。 什么是设计模式? 有哪些类型的设计模式...

    设计模式之创建型模式

    创建模式的案例,有工厂模式,单态模式 里面有详细的案例和设计思路 有利于初学者学习

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

    3.1 ABSTRACT FACTORY(抽象工厂)——对象创建型模式 3.2 BUILDER(生成器)——对象创建型模式 3.3 FACTORY METHOD(工厂方法)——对象创建型模式 3.4 PROTOTYPE(原型)——对象创建型模式 3.5 SINGLETON(单件...

    ASP.NET设计模式-杨明军译(源码)

    2.2.1 创建型 2.2.2 结构型 2.2.3 行为型 2.3 如何选择和运用设计模式 2.4 快速模式示例 2.4.1 根据设计原则进行重构 2.4.2 根据Adapter模式进行重构 2.4.3 利用企业模式 2.5 小结 第Ⅱ部分 剖析ASP.NET...

    23种设计模式 - 各种模式的学习

    23种设计模式 目录 创建型 1. Factory Method(工厂方法) 2. Abstract Factory(抽象工厂) 3. Builder(建造者) 4. Prototype(原型) 5. Singleton(单例) 结构型 6. Adapter Class/Object(适配器) ...

    gof创建型设计模式

    程序设计模式。gof的设计模式最为经典。4个创建型模式,值得我们深入学习。

    设计模式:可复用面向对象软件的基础--详细书签版

    3.6 创建型模式的讨论 89 第4章 结构型模式 91 4.1 adapter(适配器)—类对象结构型 模式 92 4.2 bridge(桥接)—对象结构型 模式 100 4.3 composite(组成)—对象结构型 模式 107 4.4 decorator(装饰)...

    设计模式可复用面向对象软件的基础.zip

    3.6 创建型模式的讨论 89 第4章 结构型模式 91 4.1 Adapter(适配器)—类对象结构型 模式 92 4.2 Bridge(桥接)—对象结构型 模式 100 4.3 Composite(组成)—对象结构型 模式 107 4.4 Decorator(装饰)—对象...

    尚硅谷设计模式源码笔记课件.zip

    1) 内容包括: 设计模式七大原则(单一职责、接口隔离、依赖倒转、里氏替换、开闭原则、迪米特法则、合成复用)、UML类图(类的依赖、泛化和实现、类的关联、聚合和组合) 23种设计模式包括:创建型模式:单例模式(8种...

    Java设计模式

    简单工厂模式是最简单的设计模式之一,它虽然不属于GoF的23种设计模式,但是应用也较为频繁,同时它是学习其他创建型模式的基础。在简单工厂模式中只需要记住一个简单的参数即可获得所需的对象实例,它提供专门的...

    《设计模式》中文版(23个设计模式的介绍与运用)

    3.6 创建型模式的讨论 89 第4章 结构型模式 91 4.1 Adapter(适配器)—类对象结构型 模式 92 4.2 Bridge(桥接)—对象结构型 模式 100 4.3 Composite(组成)—对象结构型 模式 107 4.4 Decorator(装饰)—对象...

    C++设计模式电子书

    设计模式是面向对象思想的集大成,GOF在其经典著作中总结了23种设计模式,又可分为:创建型、结构型和行为型3个大类。对于软件设计者来说,一般的过程就是在熟练掌握语言背景的基础上,了解类库的大致框架和常用的...

    设计模式(.PDF)

    3.6 创建型模式的讨论 89 第4章 结构型模式 91 4.1 Adapter(适配器)—类对象结构型 模式 92 4.2 Bridge(桥接)—对象结构型 模式 100 4.3 Composite(组成)—对象结构型 模式 107 4.4 Decorator(装饰)—对象...

    java后端开发+java23种设计模式学习demo

    创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。 行为型模式,共十一种:...

    GOLF设计模式(C++语言版)

    3.6 创建型模式的讨论 89 第4章 结构型模式 91 4.1 Adapter(适配器)—类对象结构型 模式 92 4.2 Bridge(桥接)—对象结构型 模式 100 4.3 Composite(组成)—对象结构型 模式 107 4.4 Decorator(装饰)...

    设计模式 GOF 23

    3.6 创建型模式的讨论 89 第4章 结构型模式 91 4.1 Adapter(适配器)—类对象结构型 模式 92 4.2 Bridge(桥接)—对象结构型 模式 100 4.3 Composite(组成)—对象结构型 模式 107 4.4 Decorator(装饰)—对象...

    《国外写的,翻译版本》设计模式

    3.6 创建型模式的讨论 89 第4章 结构型模式 91 4.1 Adapter(适配器)—类对象结构型 模式 92 4.2 Bridge(桥接)—对象结构型 模式 100 4.3 Composite(组成)—对象结构型 模式 107 4.4 Decorator(装饰)—对象...

Global site tag (gtag.js) - Google Analytics