工廠模式

定義一個用於建立對象的接口,讓子類決定實例化那個類,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

相關文章
相關標籤/搜索