大纲 | 小结 |
---|---|
基础准则 | 基础准则 |
创建型模式 | 单例模式 |
- | 原型模式 |
- | 简单工厂模式 |
- | 抽象工厂模式 |
- | 建造者模式 |
结构型模式 | 代理模式 |
- | 适配器模式 |
- | 桥接模式 |
- | 装饰器模式 |
- | 门面/外观模式 |
- | 享元模式 |
- | 组合模式 |
行为型模式 | 模板方法模式 |
- | 策略模式 |
- | 命令模式 |
- | 职责链模式 |
- | 状态模式 |
- | 观察者模式 |
- | 中介者模式 |
- | 迭代器模式 |
- | 访问者模式 |
- | 备忘录模式 |
- | 解释器模式 |
工厂模式无非就是用批量化去生产对象
简单工厂
简单工厂最简的实现, 应付更复杂多变的需求, 简单工厂疲于应付
这里使用简单工厂创建动物, 动物都是从工厂中批量生出来的, 你可以通过工厂生成多种动物, 无论数量还是物种
创建动物部分
from enum import Enum
import abc
AnimalType = Enum('AnimalType', 'chicken sheep cow dog cat')
class Animal(metaclass=abc.ABCMeta):
@abc.abstractmethod
def legs(self):
pass
class Chicken(Animal):
def legs(self):
return 2
class Sheep(Animal):
def legs(self):
return 4
class Cow(Animal):
def legs(self):
return 4
class Dog(Animal):
def legs(self):
return 4
class Cat(Animal):
def legs(self):
return 4
创建简单工厂
class Factory_simple:
def create_animal(self, type:AnimalType):
if type is AnimalType.chicken:
return Chicken()
elif type is AnimalType.sheep:
return Sheep()
elif type is AnimalType.cow:
return Cow()
elif type is AnimalType.dog:
return Dog()
elif type is AnimalType.cat:
return Cat()
if __name__ == "__main__":
factory1 = Factory_simple()
animal = factory1.create_animal(AnimalType.cat)
print(animal, "有%d条腿"%animal.legs())