工厂模式

定义一个用于建立对象的接口,让子类决定实例化那个类,Factory Method 使一个类的实例化延续到子类python

class UpperCaseGetter:
    def __init__(self):
        self.trans = dict(dog='dog', cat='cat')
    def get(self, gsmid):
        try:
            return self.trans[gsmid]
        except KeyError:
            return str(gsmid)
        
class LowerCaseGetter:
    def get(self, gsmid):
        return str(gsmid)

def get_localer(Animal='dog'):
    Animals = dict(dog=UpperCaseGetter, cat=LowerCaseGetter)
    return Animals[Animal]()

if __name__ == "__main__":
    e, g = get_localer('dog'), get_localer('cat')
    for msgid in 'dog cat parrot'.split():
        print(e.get(msgid), g.get(msgid))

同时有一篇也是工厂模式的文章不过是C++的实现,这里附上本身的链接:.net

http://my.oschina.net/u/1450570/blog/411206code

相关文章
相关标签/搜索