中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档 | 网通镜像
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 未整理篇
设计模式读书笔记(3)
作者:shanhe 时间:2003-02-17 11:10 出处:互联网 责编:chinaitpower
              摘要:设计模式读书笔记(3)

Factory Method 工厂方法模式

名称:

又名 虚拟构造子(virtual Constructor)模式、多态性(Polymorphic Factory)工厂模式

问题:

       考虑一个应用程序框架,向用户显示多个文档。存在两个主要的抽象类Application Document,客户必须实现这两个抽象类来实现具体的类。假设有具体的类DrawApplicationDrawDocumentapplicatiob类管理Document类并创建他们,但是,Application是无法预测哪一个Document子类将要被实例化,仅仅知道一个Document将要被创建,也就是说,框架类必须实例化类,但是框架类仅仅知道不可实例化的抽象类。

解决:

       Application 中定义一个CreateDocument方法,由Application的子类重定义此方法,以返回恰当的文档子类。一旦一个application子类实例化后,就可以实例化与应用相关的文档,而无需知道这些文档类。CreateDocument被我们称作“工厂方法”,因为它负责“生产”一个对象。

效果:

       如果需要增加一个文档,需要的就是增加新的文档类以及创建这个文档类的对应的工厂类。对于客户端来讲,没必要修改抽象工厂角色或者其他具体的工厂类。对于新增的产品,采用这个模式的系统完全支持“开-闭”原则。


关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有