設計模式--抽象模式

1.子類 class, 工廠子類class, 調用工廠class
2.子類須要抽象類定義子類模式, 工廠類須要定義抽象類規範模式。 每個工廠類管理    
 管理類管理工廠類。
3.應用:最複雜的模式:一個接口有不少的調用實例,   調用實例能夠分爲不一樣狀況,不> >      同的工廠進行管理。

4.總起來看,出口要簡潔統一,內部分別管理。dom

class類的功能要單一,每一個只作一種功能,管理一類數據,定義class要不怕>多,經過

上級管理起來
5.提高:全部的子class,工廠class,須要定義抽象類,規範格式。code

import random
"""

    
                         
"""

class Dog:
    def speak(self):
        return 'whoof'
    def __str__(self):
        return 'dog'

class Cat:
    def speak(self):
        return 'meow'
    def __str__(self):
        return 'cat'

class DogFactory:
    def get_pet(self):
        return Dog()
    def get_food(self):
        return 'dog food'

class CatFactory:
    def get_pet(self):
        return Cat()
    def get_food(self):
        return 'cat food'

class PetFactory:
    def __init__(self,pet_factory=None):
        self.pet_factory=pet_factory
    def show_pet(self):
        pet=self.pet_factory.get_pet()
        print("This is a lovely", pet)
        print('speak   ==>',pet.speak())
        print('get_food==>',self.pet_factory.get_food())

# Show pets with various factories

def get_factory():

    """Let's be dynamic!"""

    return random.choice([DogFactory, CatFactory])()



shop = PetFactory()

for i in range(3):

    shop.pet_factory = get_factory()

    shop.show_pet()

    print("=" * 10)
相關文章
相關標籤/搜索