一种工厂模式的实现:python
2014-11-26 11:21
483 查看
一、基本工厂模式
工厂模式最简单的实现是这样的:
python代码实现:
二、另外一种形式的工厂模式
代码结构
所有的类和方法定义在Classes Set中的py文件中,中间使用的方法central_call集中整合这些类的方法,一共外层调用者使用。
通过下面的代码会更容易理解它:
类定义:operation.py
CentralCall: centralCall.py
外部调用:test.py
三、总结
这类工厂模式主要是利用了python内建的getattr方法来调用各个类的方法,在实际应用中还是比较实用的。
工厂模式最简单的实现是这样的:
python代码实现:
class Operation: def GetResult(self): pass class OperationAdd(Operation): def GetResult(self): return self.op1 + self.op2 class OperationSub(Operation): def GetResult(self): return self.op1 - self.op2 class OperationMul(Operation): def GetResult(self): return self.op1 * self.op2 class OperationDiv(Operation): def GetResult(self): try: result = self.op1 / self.op2 return result except: print 'error while divide by zero' return 0 class OperationUndef(Operation): def GetResult(self): print 'Undefine operation.' return 0 class OperationFactory(): operation = {} operation['+'] = OperationAdd() operation['-'] = OperationSub() operation['*'] = OperationMul() operation['/'] = OperationDiv() def createOperation(self, ch): if ch in self.operation: op = self.operation[ch] else: op = OperationUndef() return op if __name__ == '__main__': op = '+' opa = 12 opb = 21 factory = OperationFactory() ca1 = factory.createOperation(op) ca1.op1 = opa ca1.op2 = opb print ca1.GetResult()
二、另外一种形式的工厂模式
代码结构
所有的类和方法定义在Classes Set中的py文件中,中间使用的方法central_call集中整合这些类的方法,一共外层调用者使用。
通过下面的代码会更容易理解它:
类定义:operation.py
class Operators(object): def __init__(self): pass def add(self, op1, op2, status=None): return op1 + op2 def sub(self, op1, op2, status=None): return op1 - op2
CentralCall: centralCall.py
from operation import Operators operators = Operators() def centralCall(cf, func, *args): status = [] ret = getattr(globals()[cf], func)(*args, status=status) if status: print status return ret
外部调用:test.py
from CentralCall import centralCall op1 = 5 op2 = 10 op3 = 0 ret = centralCall('operators', 'add', op1, op2) print ret
三、总结
这类工厂模式主要是利用了python内建的getattr方法来调用各个类的方法,在实际应用中还是比较实用的。
相关文章推荐
- 《 Head First 》学习笔记:工厂模式 和 抽象模式 (python实现)
- 23种设计模式之python实现--抽象工厂
- python实现工厂模式
- Python实现工厂模式
- python中getattr函数使用方法 getattr实现工厂模式
- Python实现设计模式--02.工厂模式(Factory Pattern)
- 设计模式之一:简单工厂模式,用python实现简易计算器
- python 元类型编程, 单例模式SingleTon的一种实现方式
- 23种设计模式之python实现--工厂方法
- python一种用staticmethod实现单例模式方法的探讨
- python一种用classmethod实现单例模式方法的探讨
- 设计模式之单例模式与工厂模式的Python实现(一)
- python实现工厂方法设计模式
- 研磨设计模式解析及python代码实现——(一)简单工厂模式
- python中getattr函数使用方法 getattr实现工厂模式
- python实现的工厂方法--设计模式初级
- 设计模式一(简单工厂,采用python实现)
- python实现设计模式(一、工厂模式)
- PetShop4.0 工厂模式及Profile Provider实现
- PetShop4.0 工厂模式及Profile Provider实现(转载)