擅长:python、mysql、java
<p>解决这个问题的一种方法是有一个泛型的<code>Piece</code>类和另一个<code>Strategy</code>或<code>Characteristics</code>类。这个片段提供了所有片段通用的接口(比如<code>move_to</code>,或者其他什么),并且<code>Strategy</code>决定是否可能以及如何执行命令。当你想把棋子换成皇后时,你就要改变棋子的策略。</p>
<p>编辑:在你的情况下,可能甚至没有必要让事情变得那么复杂。你可以吃这样的东西:</p>
<pre><code>class Piece:
def __init__(self, movefunc):
self.move = movefunc
def move_pawn(inst, unit=1):
pass
pawn = Piece(move_pawn)
</code></pre>