简单工厂模式
#-*- coding:utf-8 -*- #需求:实现加减乘除计算器 #设计模式:面向对象,简单工厂模式 #定义计算模式父类,计算模式子类继承该父类 #定义计算模式生成工厂类,用于生成计算对象 #定义客户端类,调用计算模式生成工厂 class CalcSuper: def __init__(self): self.result = 0 def cacl(self): return self.result class CalcAdd(CalcSuper): def calc(self,num1, num2): return num1+num2 class CalcSub(CalcSuper): def calc(self,num1, num2): return num1-num2 class CalcMul(CalcSuper): def calc(self,num1, num2): return num1*num2 class CalcDiv(CalcSuper): def calc(self,num1, num2): return num1//num2 #定义计算生成模式工厂类 class CalcModelFactory: def __init__(self,calc_type): self.calc_type_dic = { '+':CalcAdd, '-':CalcSub, '*':CalcMul, '/':CalcDiv, } self.calc_type = calc_type def calc_obj(self): return self.calc_type_dic.get(self.calc_type)() #定义客户端 class Calc_Client: def __init__(self,calc_type,num1, num2): self.calc_type = calc_type self.num1 = num1 self.num2 = num2 def calc(self): obj = CalcModelFactory(self.calc_type) obj = obj.calc_obj() return obj.calc(self.num1, self.num2) calc1 = Calc_Client('+',7,2) print(calc1.calc())