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

工厂方法模式

时间:2014-08-23 11:08:20      阅读:172      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   文件   ar   2014   div   代码   

模式说明

工厂方法模式定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个。工厂方法模式让实例化推迟到子类。

和简单工厂区别在于,每个工厂只管生产自己对应的产品,而简单工厂是一个工厂生产各种产品。

模式结构图

bubuko.com,布布扣

程序示例

说明:

一个日志类,两个派生类(文件日志和事件日志);一个日志工厂类(返回日志类),两个派生类(分别生产文件日志类和事件日志类)

代码:

 1 class log(object):
 2     def write(self):
 3         pass
 4 
 5 class eventLog(log):
 6     def write(self):
 7         print eventLog
 8 
 9 class fileLog(log):
10     def write(self):
11         print fileLog
12 
13 class logFactory(object):
14     def create(self):
15         return log()
16 
17 class eventLogFactory(logFactory):
18     def create(self):
19         return eventLog()
20 
21 class fileLogFactory(logFactory):
22     def create(self):
23         return fileLog()
24 
25 if __name__==__main__:
26     factory = fileLogFactory()
27     log = factory.create()
28     log.write()
29 
30     factory = eventLogFactory()
31     log = factory.create()
32     log.write()

运行结果:

bubuko.com,布布扣

参考来源:

http://www.cnblogs.com/chenssy/p/3679190.html

http://www.cnblogs.com/wuyuegb2312/archive/2013/04/09/3008320.html

http://www.cnblogs.com/Terrylee/archive/2006/07/17/334911.html

 

工厂方法模式

标签:style   blog   http   color   文件   ar   2014   div   代码   

原文地址:http://www.cnblogs.com/wang-shuai/p/3930706.html

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