抽象工厂模式

本文介绍了面向对象编程中的简单工厂、工厂方法和抽象工厂模式。通过Python代码展示了如何创建不同品牌(如苹果、联想、小米)的手机和电脑,强调了各个模式的结构和使用场景。在示例中,`Factory`类作为抽象基类,派生出不同的具体工厂,如`AppleFactory`、`LenovoFactory`和`MiFactory`,每个工厂能创建对应的手机和电脑产品。
摘要由CSDN通过智能技术生成
  •  简单工厂:一个工厂类,一个产品抽象类。
  •  工厂方法:多个工厂类,一个产品抽象类。
  •  抽象工厂:多个工厂类,多个产品抽象类。
  • # 抽象产品,具体产品,工厂
    # 抽象工厂,一个工厂有多个产品
    
    
    import abc
    
    
    class Factory(metaclass=abc.ABCMeta):
        def create_phone(self):
            pass
    
        def create_compute(self):
            pass
    
    
    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 AppleFactory(Factory):
        def create_phone(self):
            return IPhone()
    
        def create_compute(self):
            return Mac()
    
    
    class LenovoFactory(Factory):
        def create_phone(self):
            return LenovoPhone()
    
        def create_compute(self):
            return LenovoComputer()
    
    
    class MiFactory(Factory):
        def create_phone(self):
            return MiPhone()
    
        def create_compute(self):
            return MiComputer()
    
    
    class Computer(metaclass=abc.ABCMeta):
        def do_work(self):
            pass
    
    
    class Mac(Computer):
        def do_work(self):
            print("我在用MAc工作")
    
    
    class MiComputer(Computer):
        def do_work(self):
            print("我在用小米电脑工作")
    
    
    class LenovoComputer(Computer):
        def do_work(self):
            print("我在用联想电脑工作")
    
    
    if __name__ == "__main__":
        phone = LenovoFactory().create_phone()
        phone.call()
        phone.do_explore()
        computer = LenovoFactory().create_compute()
        computer.do_work()
    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值