def create_animal(name):
if name == 'dog':
return Dog()
elif name == 'cat':
return Cat()
animal = create_animal('dog')
animal.eat('some food')
def create_operator(op):
if op == '+':
return AddOperation()
elif op == '-':
return SubOperation()
elif op == '*':
return MulOperation()
elif op == '/':
return DivOperation()
op = create_operator('+')
op.Calc(1, 2)
#encoding=utf-8
#
#by panda
#简单工厂模式
class OperateBase():
result = 0;
def GetResult(self):
return self.result;
class OperationAdd(OperateBase):
def __init__(self, NumA, NumB):
self.result = NumA + NumB;
def GetResult(self):
return self.result;
class OperationSub(OperateBase):
def __init__(self, NumA, NumB):
self.result = NumA - NumB;
def GetResult(self):
return self.result;
class OperationMult(OperateBase):
def __init__(self, NumA, NumB):
self.result = NumA * NumB;
def GetResult(self):
return self.result;
class OperationDiv(OperateBase):
def __init__(self, NumA, NumB):
self.result = NumA / NumB;
def GetResult(self):
return self.result;
class OperationFactory():
@staticmethod
def createOperate(operate, NumA, NumB):
optList = {
'+':OperationAdd,
'-':OperationSub,
'*':OperationMult,
'/':OperationDiv,
}
oper = OperateBase()
if(optList.has_key(operate)):
oper = optList[operate](NumA, NumB);
return oper
def clientUI():
opt = raw_input("please input a operation(+-*/): ");
NumA = raw_input("please input the first number: ");
NumB = raw_input("please input the second number: ");
oper = OperationFactory.createOperate(opt, float(NumA), float(NumB))
print "Restlt: ", oper.GetResult()
return
if __name__ == '__main__':
clientUI();
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有