码迷,mamicode.com
首页 > 其他好文 > 详细

设计模式之工厂模式

时间:2014-12-19 21:50:54      阅读:156      评论:0      收藏:0      [点我收藏+]

标签:

工厂模式包括工厂方法模式和抽象工厂模式。而抽象工厂模式是工厂方法模式的扩展。

在工厂模式下,我们通常采用工厂方法来代替new来实例化对象。

具体是如何做的呢?

首先,定义一个接口来创建对象,但是让子类来决定那些类需要被实例化。工厂方法把实例化的工作推迟到子类中去实现。

应用场景

  • 有一组类似的对象需要被创建。
  • 在编码中不能预见需要创建哪种类的实例对象。
  • 系统需要考虑扩展性,不依赖产品实例如何被创建,组合和表达的细节。

工厂方法

技术分享

客户端通过调用creator类中的factory方法,返回一个Iproduct对象,Iproduct是一个接口,它的子类具体实现为product1,product2….

抽象工厂模式

技术分享

抽象工厂模式是工厂方法的一个扩展而已,将原本的creator抽象成接口,根据不同的需求创建不同的creator子类。工厂方法通常用来一个产品的等级结构,而抽象工厂通常用来创建多种产品的等级结构。

JDBC很好的应用了工厂模式,为多种关系型数据库提供统一访问,结构如下:

技术分享

优点

  • 系统可以在不修改具体工厂角色的情况下引进新的产品。
  • 客户端不用关心对象的创建。
  • 很好的利用了面向对象的多态特性。

设计模式之工厂模式

标签:

原文地址:http://www.cnblogs.com/cqumonk/p/4174702.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!