简单工厂

 

 

# 抽象类
class Operation():
    def __init__(self, NumberA=0, NumberB=0):
        self.NumberA = NumberA
        self.NumberB = NumberB
    def get_result(self):
        pass

# 具体类
class AddOp(Operation):
    def get_result(self):
        return self.NumberB + self.NumberA

class MinusOp(Operation):
    def get_result(self):
        return self.NumberA - self.NumberB

class MultiOp(Operation):
    def get_result(self):
        return self.NumberA * self.NumberB

class DivideOp(Operation):
    def get_result(self):
        try:
            return self.NumberA / self.NumberB
        except ZeroDivisionError:
            raise

# 简单工厂
class OperationFatory():
    def ChooseOperation(self, op):
        if op == '+':
            return AddOp()
        if op == '-':
            return MinusOp()
        if op == '*':
            return MultiOp()
        if op == '/':
            return DivideOp()

if __name__ == '__main__':
    factory = OperationFatory()
    f = factory.ChooseOperation('/')
    f.NumberA = 3
    f.NumberB = 5
    print(f.get_result())

简单工厂

 

posted @ 2017-05-30 22:19  跟随心走  阅读(122)  评论(0编辑  收藏  举报