创建模式-抽象工厂

# 创建型模式-抽象工厂模式
# 在工厂抽象类中有多个创建对象的方法,

from abc import ABCMeta, abstractmethod


class IApple(metaclass=ABCMeta):

    @abstractmethod
    def show(self):
        pass


class HFSApple(IApple):

    def show(self):
        print("红富士苹果")


class QNJGApple(IApple):

    def show(self):
        print("乔纳金果苹果")


class IBanana(metaclass=ABCMeta):

    @abstractmethod
    def show(self):
        pass


class MBanana(IBanana):

    def show(self):
        print("米蕉")


class ZMBanana(IBanana):

    def show(self):
        print("芝麻蕉")


class IStore(metaclass=ABCMeta):

    @abstractmethod
    def get_apple(self):
        pass

    @abstractmethod
    def get_banana(self):
        pass


class StoreA(IStore):
    def get_apple(self):
        print("商店A的苹果")
        return HFSApple()

    def get_banana(self):
        print("商店A的香蕉")
        return MBanana()


class StoreB(IStore):
    def get_animal(self):
        print("商店B的苹果")
        return QNJGApple()

    def get_banana(self):
        print("商店B的香蕉")
        return ZMBanana()


if __name__ == "__main__":
    store_a = StoreA()
    animal = store_a.get_banana()
    animal.show()
    fruit = store_a.get_apple()
    fruit.show()

  

 

posted @ 2023-06-28 15:35  你看起来真的很好吃  阅读(3)  评论(0编辑  收藏  举报