网管联盟 | 网管论坛 | 网管u家 | 网管博客 | 网管软件 | 网管求职 | 小游戏 | 网管搜索 | 网管原创 | 网管聚合 | 网管读摘 | 网管焦点 | 世界素材 | 会员投稿 | 会员中心 
中国网管联盟
Windows Linux Cisco 网络技术 数据库 黑客攻防 DotNet Java PHP 认证 新闻资讯 服务器 存储资讯 网络设备 网管学堂 技术专题 焦点 网吧频道
 当前位置: > bitsCN.com > JAVA > 高级技术 > 设计模式 > 设计模式之创建模式  

设计模式之创建模式

2007-03-26  作者:bitsCN整理  来源:收集整理  点评 投稿 收藏


1          Creational Patterns

将对象的使用与对象的创建分开。对象的使用者不负责创建对象,只需知道如何获取需 网管下载dl.bitscn.com

要的对象。这样,当被使用对象的创建过程需要变更或扩展时,对象的使用者无须变动,只要对专门负责创建该对象的对象工厂做必要的变更或扩展即可。 网管网www.bitscn.com

1.1     The Factory Pattern

1.1.1    基本类图

o_factory.GIF

网管网www.bitscn.com

1.1.2    分析

BasicProduct 有新的子产品 ExProduct3 要应用到系统时, Factory createProduct()

网管bitscn_com

需要简单修改,增加一个“ else if ”分支,没有完全实现“对扩展开放,对修改封闭”。但当明确产品就是有限的几种时,仍是有效且常用的。

网管论坛bbs_bitsCN_com

       中国网管论坛bbs.bitsCN.com

1.2     The Abstract Factory Pattern

1.2.1    基本类图

o_abstract_factory.GIF

网管联盟bitsCN_com

1.2.2    分析

BasicProduct 有新的子类 ExProduct3 要应用到系统时,新建一个对应的扩展自 网管u家u.bitsCN.com

BasicFactory ExFactory3 即可,现有类无需修改,实现了“对扩展开放,对修改封闭”。 中国网管论坛bbs.bitsCN.com

1.3     The Singleton Pattern

控制系统最多存在某个类的一个实例。很容易将 Singleton Pattern 扩展为控制系统只能 网管联盟bitsCN@com

创建某个类的有限个实例的情形。系统中大部分管理服务对象都是单实例的。例如,系统存在多个用户实例,但只存在一个用户管理者对象。

网管下载dl.bitscn.com

1.3.1    常用实现方式

public class Singleton {

网管bitscn_com

    private static Singleton instance = null ; 网管联盟bitsCN_com

    网管网www.bitscn.com

    private Singleton() {}; // 控制外部不能自行创建 Sigleton 实例

中国网管论坛bbs.bitsCN.com

    网管下载dl.bitscn.com

    public static Singleton getInstance() {

网管网www.bitscn.com

       if ( null == instance ) {

网管u家u.bitscn@com

           instance = new Singleton(); 网管u家u.bitsCN.com

       } 中国网管联盟bitsCN.com

       return instance ; 网管u家u.bitscn@com

    } 网管论坛bbs_bitsCN_com

} 网管论坛bbs_bitsCN_com

 

网管下载dl.bitscn.com

1.4     The Builder Pattern

1.4.1    基本类图

o_builder.GIF

网管网www_bitscn_com

1.4.2    分析

当一个产品( Product )由多个部分( Part1 Part2 Partn )组成,而各个部分又有 网管联盟bitsCN@com

不同的构造方式时。将产品各部分的构造和产品的组装分离,就是 Builder Pattern Builder 是对产品各部分构造的抽象,而 Director 负责使用指定的 Builder 组装产品。这样,当系统有新的产品各部分构造方式需要加入时,只需实现继承自 Builder ConcreteBuilder3 即可,系统其他类无需修改,实现了“对扩展开放,对修改关闭”。

网管网www_bitscn_com

1.5     The Prototype Pattern

给定一个对象实例 A ,得到一个另一个对象实例 B B 的类型与 A 同, B 的内容与 A 网管下载dl.bitscn.com

相同。常称 B A 的克隆或副本。

网管u家u.bitscn@com

       Java 对象模型直接支持 Prototype Pattern ,因为 Java 自带克隆机制。

TAGs   模式   创建       对象   Pattern   产品   一个   扩展   实例   Singleton      
 上一篇:Composite模式及其在JSF中的应用   下一篇:设计模式基本思想
设计模式之创建模式 评论:
loading.. 评论加载中…
评论:请自觉遵守互联网相关政策法规,评论不得超过250字。

验证码: 注册用户
本类热门排行:
最新推荐文章:
网管论坛交流: