工厂方法

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 create_OP(self):
        pass

class AddFactory(OperationFatory):
    def create_OP(self):
        return AddOp()

class MinusFactory(OperationFatory):
    def create_OP(self):
        return MinusOp()


if __name__ == '__main__':
    factory = MinusFactory()
    f = factory.create_OP()
    f.NumberA = 3
    f.NumberB = 5
    print(f.get_result())

工厂方法
原文地址:https://www.cnblogs.com/hanqian/p/6921682.html