工厂方法(python)

  • Post author:
  • Post category:python


简单工厂模式的最大优点就是工厂类内部包含了必要的逻辑判断,客户端只要提供选择条件即可,这样客户端就不需要知道具体产品的信息了。

但是每次增加产品就要修改工厂类,违背了“开放-封闭”原则。

所以,有了工厂方法模式


工厂方法模式



定义一个用于创建对象的接口,让子类决定实例化哪一个类。

工厂方法模式相对于简单工厂模式的


优点

在于,抽象了产品工厂这个类,让它变成了一个接口,只要某个类实现了这个接口,它就可以被当做工厂类来用,这样每添加一个产品的时候,就添加一下相应的生产工厂类,其它地方就可以使用了,满足“开放-封闭”原则;


缺点

在于,把生产产品的逻辑判断从工厂中剥离了出去。

#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 版权协议,转载请附上原文出处链接和本声明。