工厂模式: “工厂”即表示一个负责创建其他类型的对象的类,通常情况下,一个工厂的对象会有一个或多个方法与之关联,这些方法用于创建不同类型的对象,工厂对象会根据客户端给方法传递的不同的参数或者客户端调用不同的方法返回不同的对象。

优点:对象的创建是可以根据需要单独创建的,但是使用工厂模式来创建对象有以下优点:
工厂模式的3种实现形式(或者说3中变体):
简单工厂模式示例:
from abc import ABCMeta, abstractmethod
class Flower(metaclass=ABCMeta):
@abstractmethod
def show_price(self):
pass
class Rose(Flower):
def show_price(self):
print('Rose price: $99')
class Tulip(Flower):
def show_price(self):
print('Tulip price: $66')
class FlowerSimpleFactory:
def get_flower(self, flower_type):
return eval(flower_type)()
if __name__ == '__main__':
flower_factory = FlowerSimpleFactory()
rose = flower_factory.get_flower('Rose')
tulip = flower_factory.get_flower('Tulip')
rose.show_price()
tulip.show_price()