ちゅーしょーか

昨日の話。

以下のコードはどっちが素晴らしいのだろうか、って答えはケースバイケースでしか無いけど、上の方が規模の大きい変更に強いしテストとかも書き易いと思うけど、下の方もクイックハックに強くて捨てたもんではないよね、っていう。

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()
なにかあれば下記メールアドレスへ。
shinichiro.hamaji _at_ gmail.com
shinichiro.h