设计模式之工厂模式
2015-08-17 21:24
204 查看
1、工厂模式一共有三种:
第一种是简单工厂模式
第二种是工厂方法模式
第三种是抽象工厂模式
2、说明
工厂模式:
一般通过静态方法调用,返回一个实例对象。扩展只能通过修改代码。
工厂方法模式:
工厂是抽象的,可以增加好多个工厂,但每个工厂只生产一个产品。可以随时添加产品。
抽象工厂模式:
工厂是抽象的,可以増加好多个工厂,但是每个工厂只能生产所有产品。可以随时产加产品线。
3、三种工厂模式的关系:
多个工厂生产多种产品(抽象工厂)
多个工厂生产各一种产口(工厂方法)
一个工厂生产一种产品(简单工厂)
4、例子(图看不清可以查看大图)
简单工厂模式,pizza店通过pizza工厂生产pizza。(这是不是静态方法的= =,虽然修改成静态的也是可以的)
![](http://images0.cnblogs.com/blog2015/549373/201508/172136225817941.jpg)
工厂方法和抽象工厂,pizza店就是一个工厂方法,原料生产就是一个抽象工厂
![](http://images0.cnblogs.com/blog2015/549373/201508/172122448315235.jpg)
第一种是简单工厂模式
第二种是工厂方法模式
第三种是抽象工厂模式
2、说明
工厂模式:
一般通过静态方法调用,返回一个实例对象。扩展只能通过修改代码。
工厂方法模式:
工厂是抽象的,可以增加好多个工厂,但每个工厂只生产一个产品。可以随时添加产品。
抽象工厂模式:
工厂是抽象的,可以増加好多个工厂,但是每个工厂只能生产所有产品。可以随时产加产品线。
3、三种工厂模式的关系:
多个工厂生产多种产品(抽象工厂)
多个工厂生产各一种产口(工厂方法)
一个工厂生产一种产品(简单工厂)
4、例子(图看不清可以查看大图)
简单工厂模式,pizza店通过pizza工厂生产pizza。(这是不是静态方法的= =,虽然修改成静态的也是可以的)
![](http://images0.cnblogs.com/blog2015/549373/201508/172136225817941.jpg)
工厂方法和抽象工厂,pizza店就是一个工厂方法,原料生产就是一个抽象工厂
![](http://images0.cnblogs.com/blog2015/549373/201508/172122448315235.jpg)
![](http://images0.cnblogs.com/blog2015/549373/201508/172123163318811.jpg)
相关文章推荐
- hadoop的RPC调用原理
- JS将下拉框的disable变为able的方法
- [LeetCode] Implement Trie (Prefix Tree)
- uva 10556 - Biometrics(几何)
- BNU Training 2015.08.17
- 删除百度搜索结果页山寨网站排名的方法
- Swing图形界面程序—同学通讯录系统(1)
- scanf
- 小P寻宝记——好基友一起走
- 大数据算法学习笔记(七):外存算法
- uva 10335 - Ray Inside a Polygon(几何)
- qq好友列表 模拟
- 小P寻宝记——粗心的基友
- POJ 2187 Beauty Contest(凸包求最远点距离)
- Buy or Build
- ZOJ3822——概率DP——Domination
- Office导入导出组件权限配置汇总
- Linux rpmbuild命令
- 解密谷歌的大数据技术
- 接口