5对象模式举例.ppt

  1. 1、本文档共103页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
5对象模式举例

对象模式举例 高春鸣 2008 对象模式举例 对象模式举例 一个灵巧的基本数据结构类包设计 I.对象模式举例 1.Abstract Factory模式 (1)结构 1.Abstract Factory模式 (2)目的 提供一个创建一系列相关或相互依赖的接口,无需指定它们具体的类。 仅声明一个创建产品的接口,真正创建产品是由ConcreateProduct子类实 现。通常为每一个产品定义一个工厂方法。一个具体的工厂将为每个产品 重定义该工厂方法以指定产品。将创建实例的工作与使用实例的工作分开。 (3)适用性 以下情况可使用Abstract Factory模式: 1) 一个系统要独立于它的产品的创建,组合和表示时。 2) 一个系统要由多个产品系列中的一个来配置时。 3) 当你要强调一系统相关的产品对象的设计以便进行联合使用时。 4) 当你提供一个产品类库,而只想显示它们的接口而不是实现时。 (4)效果 Abstract Factory模式特点: 1) 分离了具体的类:不用知道产品具体的制造实现细节,客户只需要指定到哪个工厂就可以了,客户不会直接与产品打交道。 2) 易于交换产品系列 3) 有利于产品的一致性 4) 难以支持新品种的产品:缺点是当产品修改时,工厂类也要做相应的修改,增加或修改一种产品,可能要涉及到所有相关工厂类的改动。 1.Abstract Factory模式 (5)实现例子-SoupFactory 实现例子-SoupFactory abstract class AbstractSoupFactory { abstract Soup makeSoup(); //抽象工厂里面定义的都是抽象的产品 } class FishChowderConcreteSoupFactory extends AbstractSoupFactory { public Soup makeSoup() { return new FishChowder(); } } class BostonConcreteSoupFactory extends AbstractSoupFactory { public Soup makeSoup() { return new ChickenSoup(); } } abstract class Soup{ String soupName; public String getSoupName() { return soupName; } } class FishChowder extends Soup { public FishChowder() { soupName = FishChowder; } } class ChickenSoup extends Soup { public ChickenSoup(){ soupName = ChickenSoup; } } 实现例子-SoupFactory class Client { public static Soup CreateSoup(AbstractSoupFactory concreteSoupFactory) { return concreteSoupFactory.makeSoup();} public static void main(String[] argv) { AbstractSoupFactory concreteSoupFactory = new FishChowderConcreteSoupFactory(); Soup soup = CreateSoup(concreteSoupFactory); System.out.println( The first Soup is “+soup.getSoupName()); concreteSoupFactory = new ChickenSoupConcreteSoupFactory(); Soup soup = CreateSoup(concreteSoupFactory); System.out.println( The second Soup is “+soup.

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档