优化抽象工厂模式示例,添加品牌方法并重构工厂实现,更新构建脚本以支持更清晰的输出

This commit is contained in:
2025-12-09 10:56:44 +08:00
parent c5c0cf76b2
commit 59f61e54fd
5 changed files with 97 additions and 63 deletions
+23 -15
View File
@@ -64,6 +64,8 @@ class MiLaptop(Laptop):
# 抽象工厂
class AbstractFactory(ABC):
name: str
@abstractmethod
def createPhone(self) -> Phone:
pass
@@ -75,6 +77,9 @@ class AbstractFactory(ABC):
# 具体工厂 - 苹果工厂
class AppleFactory(AbstractFactory):
def __init__(self):
self.name = "苹果工厂"
def createPhone(self):
return Iphone()
@@ -84,6 +89,9 @@ class AppleFactory(AbstractFactory):
# 具体工厂 - 小米工厂
class XiaomiFactory(AbstractFactory):
def __init__(self):
self.name = "小米工厂"
def createPhone(self):
return MiPhone()
@@ -91,30 +99,30 @@ class XiaomiFactory(AbstractFactory):
return MiLaptop()
def client(factory: AbstractFactory):
phone = factory.createPhone()
laptop = factory.createLaptop()
print(f" 生产了一台{phone.brand}手机")
phone.setOS()
print(f" 生产了一台{laptop.brand}笔记本电脑")
laptop.setOS()
def main():
print("======== 抽象工厂模式 ========")
# 伟哥先去苹果工厂生产产品
print("伟哥选择了苹果工厂生产产品:")
appleFactory = AppleFactory()
applePhone = appleFactory.createPhone()
appleLaptop = appleFactory.createLaptop()
print(f" 生产了一台{applePhone.brand}手机")
applePhone.setOS()
print(f" 生产了一台{appleLaptop.brand}笔记本电脑")
appleLaptop.setOS()
factory = AppleFactory()
print(f"伟哥选择了{factory.name}生产产品:")
client(factory)
print("\n切换工厂生产其他品牌的产品...\n")
# 然后伟哥去小米工厂生产产品
print("伟哥选择了小米工厂生产产品:")
xiaomiFactory = XiaomiFactory()
xiaomiPhone = xiaomiFactory.createPhone()
xiaomiLaptop = xiaomiFactory.createLaptop()
print(f" 生产了一台{xiaomiPhone.brand}手机")
xiaomiPhone.setOS()
print(f" 生产了一台{xiaomiLaptop.brand}笔记本电脑")
xiaomiLaptop.setOS()
factory = XiaomiFactory()
print(f"伟哥选择了{factory.name}生产产品:")
client(factory)
print("====== 抽象工厂模式结束 ======")