class Phone:
def __init__(self,color,operateSystem):
self.color = color
self.operateSystem = operateSystem
def getPhoneInfo(self):
print(f"This phone has {self.color} color ,its {self.operateSystem} operate system")
class HuaWei(Phone):
def __init__(self, color,price, operateSystem):
self.price = price
super(HuaWei,self).__init__(color,operateSystem)
class XiaoMi(Phone):
def __init__(self,color,price,operateSystem = "Android"):
self.price = price
super(__class__, self).__init__(color, operateSystem)
class Iphone(Phone):
def __init__(self,color,price,operateSystem = 'IOS'):
self.price = price
super().__init__(color,operateSystem)
class PhoneFactory:
def createPhone(self,brand,color,price,operateSystem):
phoneDict = {"HuaWei":HuaWei,
"XiaoMi":XiaoMi,
"Iphone":Iphone}
cls = phoneDict.get(brand)
if cls:
return cls(color, price,operateSystem)
raise TypeError(f"{brand} is not find")
xiaomi = PhoneFactory().createPhone("XiaoMi","red",2520,"HarmonyOS")
xiaomi.getPhoneInfo()
huawei = PhoneFactory().createPhone("HuaWei","blue",3520,"HarmonyOS")
huawei.getPhoneInfo()
iphone = PhoneFactory().createPhone("Iphone","blue",5520,"IOS")
iphone.getPhoneInfo()
普通工厂模式
于 2024-07-25 15:49:52 首次发布