首页 > 代码库 > 简单工厂模式
简单工厂模式
模式说明
简单工厂模式又称之为静态工厂方法,属于创建型模式。在简单工厂模式中,可以根据传递的参数不同,返回不同类的实例。简单工厂模式定义了一个类,这个类专门用于创建其他类的实例,这些被创建的类都有一个共同的父类。
模式结构图
程序示例
说明:加减乘除运算,继承同一个运算类。运算工厂根据传入参数返回相应的运算类。
代码:
1 class Operation(object): 2 def __init__(self, op1,op2): 3 self.op1 = op1 4 self.op2 = op2 5 6 def GetResult(): 7 pass 8 9 class Add(Operation):10 def GetResult(self):11 return self.op1+self.op212 class Sub(Operation):13 def GetResult(self):14 return self.op1-self.op215 class Mul(Operation):16 def GetResult(self):17 return self.op1*self.op218 class Div(Operation):19 def GetResult(self):20 try:21 return self.op1/self.op222 except:23 print ‘divided by zero!‘24 return 025 class undef(Operation):26 def GetResult(self):27 print ‘undefine operation‘28 return 029 30 class OperationFactory(object):31 def CreateOperation(self,operation,op1,op2):32 self.operations = {33 ‘+‘:Add(op1,op2),34 ‘-‘:Sub(op1,op2),35 ‘*‘:Mul(op1,op2),36 ‘/‘:Div(op1,op2)37 }38 if operation in self.operations.keys():39 return self.operations[operation]40 else:41 return undef(op1,op2)42 43 if __name__==‘__main__‘:44 factory = OperationFactory()45 operation = factory.CreateOperation(‘+‘,1,2)46 print operation.GetResult()47 48 operation = factory.CreateOperation(‘-‘,1,2)49 print operation.GetResult()50 51 operation = factory.CreateOperation(‘*‘,1,2)52 print operation.GetResult()53 54 operation = factory.CreateOperation(‘/‘,1,2)55 print operation.GetResult()56 57 operation = factory.CreateOperation(‘#‘,1,2)58 print operation.GetResult()
运行结果:
参考来源:
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
简单工厂模式
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。