深入浅出讲解设计模式中的工厂模式.pptVIP

深入浅出讲解设计模式中的工厂模式.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
设计模式之—抽象工厂模式 Interface Creator Interface ProductA ConcreteCreator1 +factoryA:ProductA +factoryB:ProductB ConcreteCreator2 +factoryA:ProductA +factoryB:ProductB ProductA1 +ProductA1 ProductA2 +ProductA2 Interface ProductB ProductB1 +ProductB1 ProductB2 +ProductB2 +facoryA:ProductA +factory:ProductB 设计模式之—抽象工厂模式 女娲造万物 女娲不仅仅造了人,而且造了世间万物这也包括动物。因此。女娲一定是把举绳造人的方法推广到了创造各种动物身上。可以想到,女娲把绳子搅到泥水里,然后把沾满泥水的绳子凭空一甩,甩出的泥点,像人的变成人,其他变成了动物。并且分出男女、雌雄。 设计模式之—抽象工厂模式 产品等级结构 产品族 人 兽 阴 阳 女人 雌兽 男人 雄兽 阴产品族 阳产品族 设计模式之--简单工厂模式 Interface 人 +吃饭() +睡觉() +说话() +吃饭() +睡觉() +说话() 亚当 +吃饭() +睡觉() +说话() 夏娃 +举绳造人() 女娲神绳 +觅食() +睡觉() +叫唤() 公牛 +觅食() +睡觉() +叫唤() 母马 阳绳 阴绳 +举绳造物 +举绳造物 Interface 兽 +觅食() +睡觉() +叫唤() 设计模式之—抽象工厂模式 实现要点 抽象工厂将产品对象的创建延迟到它的具体工厂的子类。 如果没有应对“多系列对象创建”的需求变化,则没有必要使用抽象工厂模式,这时候使用简单的静态工厂完全可以。 系列对象指的是这些对象之间有相互依赖、或作用的关系,例如游戏开发场景中的“道路”与“房屋”的依赖,“道路”与“地道”的依赖。 抽象工厂模式经常和工厂方法模式共同组合来应对“对象创建”的需求变化。 设计模式之—抽象工厂模式 通常在运行时刻创建一个具体工厂类的实例,这一具体工厂的创建具有特定实现的产品对象,为创建不同的产品对象,客户应使用不同的具体工厂。 把工厂作为单件,一个应用中一般每个产品系列只需一个具体工厂的实例,因此,工厂通常最好实现为一个单件模式。 创建产品,抽象工厂仅声明一个创建产品的接口,真正创建产品是由具体产品类创建的,最通常的一个办法是为每一个产品定义一个工厂方法,一个具体的工厂将为每个产品重定义该工厂方法以指定产品,虽然这样的实现很简单,但它确要求每个产品系列都要有一个新的具体工厂子类,即使这些产品系列的差别很小。 设计模式之—抽象工厂模式 优点 分离了具体的类。抽象工厂模式帮助你控制一个应用创建的对象的类,因为一个工厂封装创建产品对象的责任和过程。它将客户和类的实现分离,客户通过他们的抽象接口操纵实例,产品的类名也在具体工厂的实现中被分离,它们不出现在客户代码中。 它使得易于交换产品系列。一个具体工厂类在一个应用中仅出现一次——即在它初始化的时候。这使得改变一个应用的具体工厂变得很容易。它只需改变具体的工厂即可使用不同的产品配置,这是因为一个抽象工厂创建了一个完整的产品系列,所以整个产品系列会立刻改变。 它有利于产品的一致性。当一个系列的产品对象被设计成一起工作时,一个应用一次只能使用同一个系列中的对象,这一点很重要,而抽象工厂很容易实现这一点。 设计模式之—抽象工厂模式 缺点 难以支持新种类的产品。难以扩展抽象工厂以生产新种类的产品。这是因为抽象工厂几口确定了可以被创建的产品集合,支持新种类的产品就需要扩展该工厂接口,这将涉及抽象工厂类及其所有子类的改变。 设计模式之—抽象工厂模式 适用性 在以下情况下应当考虑使用抽象工厂模式: 一个系统不应当依赖于产品类实例如何被创建、组合和表达的细节,这对于所有形态的工厂模式都是重要的。 这个系统有多于一个的产品族,而系统只消费其中某一产品族。 同属于同一个产品族的产品是在一起使用的,这一约束必须在系统的设计中体现出来。 系统提供一个产品类的库,所有的产品以同样的接口出现,从而使客户端不依赖于实现。 设计模式之—抽象工厂模式 应用场景 支持多种观感标准的用户界面工具箱(Kit)。 游戏开发中的多风格系列场景,比如道路,房屋,管道等。 …… 设计模式之—抽象工厂模式 总结 总之,抽象工厂模式提供了一个创建一系列相关或相互依赖对象的接口,运用抽象工厂模式的关键点在于应对“多系列对象创建”的需求变化。一句话,学会了抽象工厂模式,你将理解OOP的精华:面向接口编程。 * 1。抽象工厂角色:担任这个角色的是

文档评论(0)

wxc6688 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档