【发布时间】:2010-08-10 13:51:02
【问题描述】:
这是我目前所拥有的:
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!");
}
}
}
现在,如果我有一个 Character.cs 超类。该超类如何实现武器行为,以便子类可以更具体。
namespace Strategy
{
class Character
{
public IWeaponBehavior weapon;
public Character(IWeaponBehavior specificWeapon)
{
weapon = specificWeapon;
}
}
}
namespace Strategy
{
class Thief : Character
{
}
}
我该如何实现呢?我对实际代码需要是什么感到非常困惑。
我知道这可能要求太多,但如果您能编写实际代码以便我研究它,那对你们非常好。我通过看代码来学习。 :P 许多人可以从这个问题中受益。
【问题讨论】:
-
“斜线斜线!”部分规则:)
-
根据
Character的其他特征,您可以删除继承的类并使用工厂来设置所需的 Characters 特征和策略。
标签: c# strategy-pattern