擅长:python、mysql、java
<p>如果您想在基类中保留逻辑,请参阅Martijn Pieters的答案。在</p>
<p>但是,一种可能是重新构造代码,使验证发生在不属于基类的函数/类中。也许实际运行动作的类可以检查这些。。。在</p>
<pre><code>class Jump(object):
def run(self, param):
...
def run_action(action, param):
if not is_valid(param):
raise ValueError(…)
return action.run(param)
</code></pre>
<p>单元测试操作更简单(您不需要担心基本逻辑),而且如果“BaseAction”被破坏了,它也不会破坏所有的“跳转”单元测试。”run_action”(如果愿意,可以将其设为类而不是函数)本身可以非常容易地测试(您可以创建一个假的“action”对象)。在</p>