Python实现简单工厂模式

如图所示。

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.****.net/freeking101/article/details/53073716