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)