设计模式选择

时间:2016-04-20 14:19:54

标签: python python-2.7 design-patterns

通常情况下,我有可能的行动,我需要选择不同的方式来做到这一点。请注意,在对象的生命周期中,我只需要运行一次该方法。

一种方法可以是:

class A(object):
    def my_fun(self, identifier, *args, **kwargs):
        if identifier == 'fun1':
            return self.fun1(*args, **kwargs)
        elif identifier == 'fun2':
            return self.fun2(*args, **kwargs)
        ...

    def fun1(...):
        ...
    def fun2(...):
        ...

我认为更好的另一种方法是直接设置方法:

class A(object):
    def my_fun(self, identifier, *args, **kwargs):
        raise NotImplementedError()

    def fun1(...):
        ...
    def fun2(...):
        ...


a = A()
a.my_fun = fun23

我认为它更好,因为有更少的样板代码,添加乐趣只是实现它,而不是在my_fun中添加它。在选择功能时,我也可以有适当的自动完成功能。

但是,我还没有在其他python代码中看到过这种方式。这是好习惯吗?这样做还有其他建议吗?

0 个答案:

没有答案