キャラクタに武器を持たせるコーディングパターン
活用される知識
- 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("剣を振りかざす");
    }
}
訪問数 35 回, 今日の訪問数 1回






ディスカッション
コメント一覧
まだ、コメントがありません