Strategyパターン Interface使用版
こちらはWeaponを抽象クラスからインタフェースに変更した場合の実装。こっちの方がいいのかな?
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"; } }