Python简单工厂模式

  简单工厂属于类的创新性模式,又叫静态工厂方法模式。是专门通过定义一个类来负责创建其他类的实例,被创建的实例通常都具有相同的父类。
  模式特点:工厂工具条件产生不同功能的类。
  简单工厂的组成要素:负责具体产品对象的创建工作,是该模式的核心。当场景比较负责的时候,可能需要 一个工厂类来负责产品的创建。以及产品的抽象接口或者抽象类,抽象所有产品的公共接口。
  使用场景:工厂类负责创建的对象较少。只需要知道传入工厂类的参数,对于如何创建对象并不关心。如下用工厂类实现一个加减乘除的计算操作:

class MathBase(object):
    def Calc(self,x,y):
        return 0

class MathAdd(MathBase):
    def Calc(self,x,y):
        return x+y

class MathSub(MathBase):
    def Calc(self,x,y):
        return x-y

class MathMult(MathBase):
    def Calc(self,x,y):
        return x*y

class MathDiv(MathBase):
    def Calc(self,x,y):
        try:
            return x/y
        except:
            print('error:divided by zero')
            return 0

class MathFactory():
    @staticmethod
    def createMath(operate):
        math_dict = {r'+':MathAdd,
        r'-':MathSub,
        r'*':MathMult,
        r'/':MathDiv,}
        math_object = MathBase()
        if operate in math_dict:
            math_object = math_dict[operate]()
        return math_object

def Calc(operate,x,y):
    calc_object = MathFactory.createMath(operate)
    return calc_object.Calc(x,y)

if __name__ == "__main__":
    while True:
        operate = input("请输入操作方法+-*/中的一个")
        number1 = input("请输入参数1")
        number2 = input("请输入参数2")
        print(Calc(operate,int(number1),int(number2)))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值