定义:
工厂模式依然是一种创建型设计模式,作为工厂,它所关心的是产品的产生,也就是对象的创建,我们利用工厂来创建对象,而不必我们亲自创建对象,我们无需去理解如何创建对象,只需要向工厂提出要求,让工厂去根据你的要求,给你生产你要的产品,给你相应的对象,这种模式便叫做工厂模式。
工厂模式的优点:
- 松耦合,创建的对象独立于类的实现
- 用户无需了解创建对象的类,仅需知道传递的接口,参数,方法。便可以创建所需的对象。
- 易于扩展。工厂添加其他的类的数据类型,仅需要修改参数即可。
实现:
「1」简单工厂模式:
from abc import ABCMeta,abstractmethod #ABCMeta是python的一个元类,用于在Python程序中创建抽象基类,抽象基类中声明的抽象方法,使用abstractmethod装饰器装饰。 class Coke(metaclass=ABCMeta): @abstractmethod def drink(self): pass class Coca(Coke): def drink(self): print('drink Coca-Cola') class Pepsi(Coke): def drink(self): print('drink Pepsi-Cola') class Fast_food_restaurant(): def make_coke(self ,name): return eval(name)() KCD=Fast_food_restaurant() coke=KCD.make_coke('Coca') coke.drink() #drink Coca-Cola eval(类名)返回的是一个class类型的对象 我们建立一个可乐的抽象类,百事可乐和可口可乐继承这个抽象类,我们又建立了快餐店类,也就是所说的工厂类,让它生产可乐。当用户需要可乐时,只需要告诉快餐店做一份什么品牌的可乐,告诉快餐店可乐的名字,然后快餐店使用make_coke方法做可乐,返回了你所需要的对象——一杯可口可乐,然后就可以快乐的喝可乐了。。