Voici ce que j'ai jusqu'à présent:Comment utiliser le modèle de stratégie avec C#?
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!");
}
}
}
Maintenant, si j'ai une superclasse Character.cs. Comment cette super-classe peut-elle implémenter un comportement d'arme afin que les classes enfants puissent être plus spécifiques?
namespace Strategy
{
class Character
{
public IWeaponBehavior weapon;
public Character(IWeaponBehavior specificWeapon)
{
weapon = specificWeapon;
}
}
}
namespace Strategy
{
class Thief : Character
{
}
}
Comment puis-je implémenter cela? Je suis très confus sur ce que le code doit être.
Je sais que cela pourrait être trop demander, mais si vous pouviez écrire le code réel afin que je puisse l'étudier, ce serait très gentil de votre part. J'apprends en voyant du code. : P Beaucoup de gens pourraient bénéficier de cette question.
Le "SLASH SLASH!" règles de partie :) – thelost
En fonction de l'autre caractéristique de 'Character' vous pouvez supprimer les classes héritées et utiliser une fabrique qui mettrait en place les traits de caractère et les stratégies nécessaires. –