工厂模式(Factory Pattern)是 最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。
简单的工厂模式就来自生活中的工厂这个概念:只要提供原材料,图纸就能生产出你想要的产品。
工厂方法:
def fatory(type):
if type == 'iphone':
print('Make an iphone')
return ('An iphone')
if type == 'pixel':
print('Make a pixel')
return ('A pixel')
当我输入指定的原料时(type)就能生成相应的手机。
抽象工厂:
抽象工厂即对普通的工厂方法进行抽象,即它生产出来的应该是能生产各种新产品的工厂。
class Male(object):
def __init__(self, name):
print("Hello Mr." + name)
class Female(object):
def __init__(self, name):
print("Hello Miss." + name)
class Born():
def bornPerson(self, name, gender):
if gender == 'm':
return Male(name)
elif gender == 'f':
return Female(name)
factory = Born()
factory.bornPerson('Jack', 'm')
#Hello Mr.Jack
可以看到需要生产男人时就调用Male这个产生男人的工厂。