파이썬 객체지향 프로그래밍 입문, 계속해서 배우고 발전해야 합니다
"""추상 팩토리 패턴 구현"""
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 | import random
class PetShop:
"" "宠物商店" ""
def __init__(self, animal_factory=None):
"" "宠物工厂是我们的抽象工厂。我们可以随意设置。" ""
self.pet_factory = animal_factory
def show_pet(self):
"" "使用抽象工厂创建并显示一个宠物" ""
pet = self.pet_factory.get_pet()
print ( "我们有一个可爱的 {}" .format(pet))
print ( "它说 {}" .format(pet.speak()))
print ( "我们还有 {}" .format(self.pet_factory.get_food()))
# 工厂生产的事物
class Dog:
def speak(self):
return "汪"
def __str__(self):
return "Dog"
class Cat:
def speak(self):
return "喵"
def __str__(self):
return "Cat"
# Factory classes
class DogFactory:
def get_pet(self):
return Dog()
def get_food(self):
return "狗食"
class CatFactory:
def get_pet(self):
return Cat()
def get_food(self):
return "猫粮"
# 随机创建合适的工厂
def get_factory():
"" "让我们动起来!" ""
return random.choice([DogFactory, CatFactory])()
# 多个工厂显示宠物
if __name__ == "__main__" :
for i in range(4):
shop = PetShop(get_factory())
shop.show_pet()
print ( "=" * 20)
|
로그인 후 복사
결과는 그림과 같습니다.

위 내용은 모두에게 도움이 되는 글입니다. 배우고 또한 모든 사람들이 PHP 중국어 웹 사이트를 지원하기를 바랍니다.
Python의 추상 팩토리 패턴과 관련된 더 많은 기사를 보려면 PHP 중국어 웹사이트를 주목하세요!