キャラクタに武器を持たせるコーディングパターン
活用される知識
- C#の基本文法
- アクセス修飾子
- オブジェクト指向
- has-a
- is-a
- 継承
- 抽象クラス
- インターフェース
- プロパティ
- クラス図
- Strategyパターン
環境
- VisualStudio for Mac
- .NET6
クラス図

コード
class Program
{
static void Main()
{
Character king = new King();
king.Weapon = new KnifeBehavior();
king.Fight();
king.Weapon = new SwordBehavior();
king.Fight();
}
}
public abstract class Character
{
protected IWeaponBehavior? weapon;
public void Fight()
{
weapon?.UseWeapon();
}
public IWeaponBehavior Weapon { set => weapon = value; }
}
public class King : Character
{
}
public interface IWeaponBehavior
{
void UseWeapon();
}
public class KnifeBehavior : IWeaponBehavior
{
public void UseWeapon()
{
Console.WriteLine("ナイフで切る");
}
}
public class SwordBehavior : IWeaponBehavior
{
public void UseWeapon()
{
Console.WriteLine("剣を振りかざす");
}
}
訪問数 2 回, 今日の訪問数 1回
ディスカッション
コメント一覧
まだ、コメントがありません