Wie verwende ich das Strategiemuster mit C #?

Hier ist was ich bisher habe:

namespace Strategy
{
    interface IWeaponBehavior
    {
        void UseWeapon();
    }
}

namespace Strategy
{
    class Knife : IWeaponBehavior
    {
        public void UseWeapon()
        {
            Console.WriteLine("You used the knife to slash the enemy! SLASH SLASH!");
        }
    }
}

namespace Strategy
{
    class Pan : IWeaponBehavior
    {
        public void UseWeapon()
        {
            Console.WriteLine("You use the pan! 100% Adamantium power! BONG!");
        }
    }
}

Nun wenn ich eine Character.cs Superklasse habe. Wie kann diese Superklasse ein Waffenverhalten implementieren, so dass Kinderklassen spezifischer werden können?

namespace Strategy
{
    class Character
    {
        public IWeaponBehavior weapon;

        public Character(IWeaponBehavior specificWeapon)
        {
            weapon = specificWeapon;
        }        
    }
}

namespace Strategy
{
    class Thief : Character
    {

    }
}

Wie kann ich das umsetzen? Ich bin sehr verwirrt darüber, was der eigentliche Code sein muss.

Ich weiß, dass dies zu viel verlangt, aber wenn Sie den eigentlichen Code schreiben könnten, damit ich ihn studieren kann, wäre das sehr nett von Ihnen. Ich lerne, indem ich Code sehe. : P Viele Menschen könnten von dieser Frage profitieren.

Antworten auf die Frage(14)

Ihre Antwort auf die Frage