解决一个工厂类耦合了大量类的创建
# 抽象产品,具体产品,工厂
# 专卖手机店,专卖本品牌手机。
import abc
class Phone(metaclass=abc.ABCMeta):
def call(self):
pass
def do_explore(self):
pass
class MiPhone(Phone):
def call(self):
print("小米手机打电话")
def do_explore(self):
print("小米手机上网")
class IPhone(Phone):
def call(self):
print("iphone手机打电话")
def do_explore(self):
print("iphone手机上网")
class LenovoPhone(Phone):
def call(self):
print("联想手机打电话")
def do_explore(self):
print("联想手机上网")
class PhoneFactory(metaclass=abc.ABCMeta):
def create(self):
pass
class IphoneFactory(PhoneFactory):
def create(self):
return IPhone()
class LenovoPhoneFactory(PhoneFactory):
def create(self):
return LenovoPhone()
class MiPhoneFactory(PhoneFactory):
def create(self):
return MiPhone()
# class PhoneShop():
# @staticmethod
# def create_phone(phone_type):
# if phone_type == "MiPhone":
# return MiPhone()
# elif phone_type == "Iphone":
# return IPhone()
# else:
# return LenovoPhone()
if __name__ == "__main__":
phone = LenovoPhoneFactory().create()
phone.call()
phone.do_explore()