设计模式--抽象模式

1.子类 class, 工厂子类class, 调用工厂class
2.子类需要抽象类定义子类模式, 工厂类需要定义抽象类规范模式。 每一个工厂类管理    
 管理类管理工厂类。
3.应用:最复杂的模式:一个接口有很多的调用实例,   调用实例可以分为不同情况,不> >      同的工厂进行管理。

4.总起来看,出口要简洁统一,内部分别管理。

 class类的功能要单一,每个只做一种功能,管理一类数据,定义class要不怕>多,通过

上级管理起来
5.提升:所有的子class,工厂class,需要定义抽象类,规范格式。

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)







  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值