设计模式--工厂模式(工厂方法、抽象工厂)
2015-07-09 22:39
267 查看
1、工厂方法模式(Factory Method):定义一个用于创建对象的接口,让子类决定实例化哪个类。工厂方法使一个类的实例化延迟到其子类。
![](http://img.blog.csdn.net/20150709222706491?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
正如创建交通工具,可以通过不同的工厂方法创建所需的对象。
2、抽象工厂模式(Abstract Factory):提供一个创建一些列相关或相互依赖对象的接口,而无需指定他们具体的类。
类图:
![](http://img.blog.csdn.net/20150709223156419?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
对比:
1、工厂方法在产品维度,即类图中Movable方向拓展比较方便,只需增加对应的类及相应的工厂方法即可。
2、抽象工厂:方便用于一系列产品的创建,可知具体工厂方法中包含所有产品创建的抽象方法。
3、工厂方法在增加另一种产品时,改动较多。想相反,抽象工厂在增加单种类的产品时修改较多。
正如创建交通工具,可以通过不同的工厂方法创建所需的对象。
2、抽象工厂模式(Abstract Factory):提供一个创建一些列相关或相互依赖对象的接口,而无需指定他们具体的类。
类图:
对比:
1、工厂方法在产品维度,即类图中Movable方向拓展比较方便,只需增加对应的类及相应的工厂方法即可。
2、抽象工厂:方便用于一系列产品的创建,可知具体工厂方法中包含所有产品创建的抽象方法。
3、工厂方法在增加另一种产品时,改动较多。想相反,抽象工厂在增加单种类的产品时修改较多。
相关文章推荐
- Android开发————启动android virtual devices
- 苹果开发 笔记(46)圆角
- 代理模式 Proxy
- Ubuntu下Sublime Text 3解决无法输入中文的方法
- Fragment的一些基础
- OSGEarth绘制Geometry:绘多边形(三)
- 1. JavaScript 基础
- 使用Oracle sqlldr 快速批量导入文本文件
- EHCache入门系列(二)–在工程中单独使用
- 深入理解JAVA的多态性[转]
- 黑马程序员——高新技术---Java基础语法-循环结构和跳转语句
- mongodb 的 scala 驱动 -> casbah
- XML Schema-based configuration
- 封装自定义控件的sdk(创建静态库static library)
- Zabbix基于Proxy分布式部署实现Web监控
- EHCache入门系列(一)–简介及配置
- LigerUi之Grid使用详解(二)——数据编辑(计算每列之和之类的)
- JAVA的第一天
- 【周末作业】2015.7.9 第一周 html作业及答案
- 如何用C#检查硬盘是否是固态硬盘SSD