更新生成者模式示例,添加木屋和砖房建造者实现,重构相关代码并增强可读性
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
"""
|
||||
实例
|
||||
今天伟哥约自己在富士康工作的老乡出来喝酒,没想到老乡最近一直在加班。听说接了个大活,要同时为小米公司和苹果公司代工他们的笔记本电脑和手机生产业务。
|
||||
今天汤宝宝约自己在富士康工作的老乡出来喝酒,没想到老乡最近一直在加班。
|
||||
听说接了个大活,要同时为小米公司和苹果公司代工他们的笔记本电脑和手机生产业务。
|
||||
"""
|
||||
|
||||
from abc import ABC, abstractmethod
|
||||
@@ -98,7 +99,7 @@ class XiaomiFactory(AbstractFactory):
|
||||
def createLaptop(self):
|
||||
return MiLaptop()
|
||||
|
||||
|
||||
# 客户端代码
|
||||
def client(factory: AbstractFactory):
|
||||
phone = factory.createPhone()
|
||||
laptop = factory.createLaptop()
|
||||
@@ -111,17 +112,16 @@ def client(factory: AbstractFactory):
|
||||
def main():
|
||||
print("======== 抽象工厂模式 ========")
|
||||
|
||||
# 伟哥先去苹果工厂生产产品
|
||||
print("伟哥选择了苹果工厂生产产品:")
|
||||
# 先去苹果工厂生产产品
|
||||
factory = AppleFactory()
|
||||
print(f"伟哥选择了{factory.name}生产产品:")
|
||||
print(f"汤宝宝选择了{factory.name}生产产品:")
|
||||
client(factory)
|
||||
|
||||
print("\n切换工厂生产其他品牌的产品...\n")
|
||||
|
||||
# 然后伟哥去小米工厂生产产品
|
||||
# 然后去小米工厂生产产品
|
||||
factory = XiaomiFactory()
|
||||
print(f"伟哥选择了{factory.name}生产产品:")
|
||||
print(f"汤宝宝选择了{factory.name}生产产品:")
|
||||
client(factory)
|
||||
|
||||
print("====== 抽象工厂模式结束 ======")
|
||||
|
||||
Reference in New Issue
Block a user