定义一个用于建立对象的接口,让子类决定实例化那个类,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