Strategyパターン Interface使用版

こちらはWeaponを抽象クラスからインタフェースに変更した場合の実装。こっちの方がいいのかな?

併せてクラス図も引き直してみました。こんなんでいいのかな。
http://studio-m.heteml.jp/pattern/strategy/fighter/class2.gif

Weapon.php

<?php
/**
 * Stategyパターンによる武器の実装
 *
 * @auther Ryo Miyake <studio-m@heteml.jp>
 */

/**
 * 武器インタフェース
 */
interface Weapon {
    public function getName();
    public function attack();
}

/**
 * 斧クラス
 */
class Axe implements Weapon {
    public function getName()
    {
        return '斧';
    }

    public function attack()
    {
        echo "斧を振り下ろした!<br><br>\n";
    }
}

/**
 * 剣クラス
 */
class Sword implements Weapon {
    public function getName()
    {
        return '剣';
    }

    public function attack()
    {
        echo "剣で斬りつけた!<br><br>\n";
    }
}