Python实现简单工厂模式

如图所示。



代码如下:

#工厂模式特点:工厂根据条件产生不同功能的类
class Operation(object):
    def get_result(self):
        pass

class Add(Operation):#继承自类Operation
    def get_result(self):
        return self.op1+self.op2

class Sub(Operation):
    def get_result(self):
        return self.op1-self.op2

class Mul(Operation):
    def get_result(self):
        return self.op1*self.op2

class Div(Operation):
    def get_result(self):
        return self.op1/self.op2

class Undef(Operation):
    def get_result(self):
        print("no define operator")

class Factory(object):
    operator=dict()#将operator定义为一个字典
    operator["+"]=Add()
    operator["-"]=Sub()
    operator["*"]=Mul()
    operator["/"]=Div()
    #operator:{"+":Add(),"-":Sub,"*":Mul,"/":Div}

    def create_operator(self,ch):
        op=self.operator[ch] if ch in self.operator else Undef()
        return op#op的值是四则运算类中的一个或者无定义

def main():
    print("*" *30)
    op=input("operator:")#输入运算符
    opa=int(input("a:"))
    opb=int(input("b:"))
    factory=Factory()
    cal=factory.create_operator(op)#获取到相应的类
    cal.op1=opa#该类有两个成员
    cal.op2=opb
    print(cal.get_result())#改类调用成员函数计算出结果

if __name__=='__main__':
    while 1:
        main()
    pass
出自:https://blog.csdn.net/freeking101/article/details/53073716
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值