python设计模式之-工厂模式

发布于2023-08-19 17:47 阅读 114

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

适用性:

当一个类不知道它所必须创建的对象的类的时候。

当一个类希望由它的子类来指定它所创建的对象的时候。

当类将创建对象的职责委托给多个帮助子类中的某一个,并且你希望将哪一个帮助子类是代理者这一信息局部化的时候。

python代码:


class TranslateBase(object):
    def __init__(self):
        self.trans = {}

    def get(self, key):
        return self.trans.get(key, str(key))


class ChinaClass(TranslateBase):
    def __init__(self):
        self.trans = {"dog": "狗", "cat": "猫"}


class JapanClass(TranslateBase):
    def __init__(self):
        self.trans = {"dog": "gou", "cat": "mao"}


class EnglandClass(TranslateBase):
    pass


def get_class(cls_name):
    _cls_map = {"china": ChinaClass, "japan": JapanClass, "england": EnglandClass}
    return _cls_map.get(cls_name)()


ch, en = get_class("china"), get_class("england")
for item in "dog parrot cat bear".split():
    print(ch.get(item), en.get(item))


评论

全部评论

{{item.username}}
{{item.comment_content}}
回复

{{reply.username}} 回复:{{reply.replyname}}

{{reply.content}}

{{reply.isshow ? '取消回复' : '回复'}}

作者

程序员李蛋

一个早早地学会让自己的灵魂充分扩展的人,以后才能将整个世界收入自己的灵魂当中。