from abc import ABC, abstractmethod class Fruit(ABC): def __init__(self, name): self.name = name @abstractmethod def make_juice(self): pass class Apple(Fruit): def make_juice(self): print(f"制作{self.name}汁") class Grape(Fruit): def make_juice(self): print(f"制作{self.name}酒") class AbcFruitFactory(ABC): @abstractmethod def create_fruit(self): pass class AppleFactory(AbcFruitFactory): def create_fruit(self): return Apple('苹果') class OrangeFactory(AbcFruitFactory): def create_fruit(self): return Grape('葡萄') fruit1 = AppleFactory().create_fruit() fruit1.make_juice() # 制作苹果汁 fruit2 = OrangeFactory().create_fruit() fruit2.make_juice()