美文网首页
创建型-Factory Method(工厂方法)

创建型-Factory Method(工厂方法)

作者: 木叶苍蓝 | 来源:发表于2022-11-09 11:45 被阅读0次
1. Facotory Method (工厂方法)
工厂方法
意图:

定义一个用于创建对象的接口,让子类决定实力化哪一个类。Factoy Method 使一个类的实例化延迟到其子类。

使用性:

当一个类不知道它所必须创建的对象的类的时候。
当一个类希望由它的子类来指定它所创建的对象的时候
当类将创建对象的职责委托给多个帮助子类中的某一个,并且你希望将哪一个帮助子类是代理者这一信息局部化的时候。

实现:
#!/usr/bin/python
#coding:utf-8
"""
Factory Method
"""
class ChinaGetter:
    """ A simple localizer a la gettext """
    def __init__(self):
        self.trans = dict(dog=u"小狗", cat=u"小猫")

    def get(self, msgid):
        """ We'll punt if we don't have a translation """
        try:
            return self.trans[msgid]
        except KeyError:
            return str(msgid)

class EnglishGetter:
    """ Simply echoes the msg ids """
    def get(self, msgid):
        return str(msgid)

def get_loaclizer(language="English"):
    languages = dict(English=EnglishGetter, China=ChinaGetter)
    return languages[language]()

# Create our localizers
e, g = get_localizer("English"), get_localizer("China")
# Localize some text
for msgid in "dog parrot cat bear".split():
    print(e.get(msgid), g.get(msgid))

相关文章

网友评论

      本文标题:创建型-Factory Method(工厂方法)

      本文链接:https://www.haomeiwen.com/subject/hqqntdtx.html