简单工厂模式的最大优点就是工厂类内部包含了必要的逻辑判断,客户端只要提供选择条件即可,这样客户端就不需要知道具体产品的信息了。
但是每次增加产品就要修改工厂类,违背了“开放-封闭”原则。
所以,有了工厂方法模式
工厂方法模式
:
定义一个用于创建对象的接口,让子类决定实例化哪一个类。
但是每次增加产品就要修改工厂类,违背了“开放-封闭”原则。
所以,有了工厂方法模式
工厂方法模式
:
定义一个用于创建对象的接口,让子类决定实例化哪一个类。
工厂方法模式相对于简单工厂模式的
优点
在于,抽象了产品工厂这个类,让它变成了一个接口,只要某个类实现了这个接口,它就可以被当做工厂类来用,这样每添加一个产品的时候,就添加一下相应的生产工厂类,其它地方就可以使用了,满足“开放-封闭”原则;
缺点
在于,把生产产品的逻辑判断从工厂中剥离了出去。
#encoding=utf-8
#
#by panda
#工厂方法模式
def printInfo(info):
print unicode(info, 'utf-8').encode('gbk')
#雷锋
class LeiFeng():
def Sweep(self):
printInfo('扫地')
def Wash(self):
printInfo('洗衣')
def BuyRice(self):
printInfo('买米')
#学雷锋的大学生
class Undergraduate(LeiFeng):
def __init__(
版权声明:本文为ponder008原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。