昨日の話。
以下のコードはどっちが素晴らしいのだろうか、って答えはケースバイケースでしか無いけど、上の方が規模の大きい変更に強いしテストとかも書き易いと思うけど、下の方もクイックハックに強くて捨てたもんではないよね、っていう。
class EnemyMove: def move(self): print "move" class EnemyDraw: def draw(self): print "draw" class Enemy: def __init__(self, move, draw): self._move = move self._draw = draw def run(self): self._move.move() self._draw.draw() enemy = Enemy(EnemyMove(), EnemyDraw()) enemy.run()
と
class Enemy: def run(self): self.move() self.draw() def move(self): print "move" def draw(self): print "draw" enemy = Enemy() enemy.run()