我想提交一个我经常在我的python代码中看到的代码模式,在这里工作,我对它不满意,我想要一个更好的解决方案。
这是我们今天的内容:
class AbstractClass(object):
....
def method1(self,...)
raise NotImplementedError
...
class FirstImplementationMixin(object)
def method1(self,....)
...
class SecondImplementationMixin(object)
def method1(self...)
....
class InstanciatedClass1(FirstImplementationMixin, AbstractClass)
....
class InstanciatedClass2(SecondImplementationMixin, AbstractClass)
....
你看到诀窍了吗?我必须在继承列表的第一个位置添加 mixin,我不喜欢这个解决方案。如果我们将它添加到第二个位置,解释器将使用 AbstractClass.method1 并因此引发异常。
在这种微不足道的情况下,用中间类替换 mixin 是可能的,但在已经有基类的复杂继承的情况下,解决方案可能并不明显。
对你来说最好的设计模式是什么?