Esto es lo que tengo hasta ahora:¿Cómo usar el patrón de estrategia con 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!");
}
}
}
Ahora bien, si tengo una superclase Character.cs. ¿Cómo puede esa superclase implementar un comportamiento de arma para que las clases de niños puedan ser más específicas?
namespace Strategy
{
class Character
{
public IWeaponBehavior weapon;
public Character(IWeaponBehavior specificWeapon)
{
weapon = specificWeapon;
}
}
}
namespace Strategy
{
class Thief : Character
{
}
}
¿Cómo puedo aplicar esto? Estoy muy confundido sobre cuál debe ser el código real.
Sé que esto puede ser pedir demasiado, pero si usted podría escribir el código real para que pudiera estudiar, eso sería muy agradable de ustedes. Aprendo al ver el código. : P Muchas personas podrían beneficiarse de esta pregunta.
El "SLASH SLASH!" reglas de parte :) – thelost
Dependiendo de la otra característica de 'Character', es posible que pueda eliminar las clases heredadas y utilizar una fábrica que configure los rasgos y estrategias de Characters necesarios. –