Dưới đây là những gì tôi có cho đến nay:Cách sử dụng Mẫu Chiến lược với 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!");
}
}
}
Bây giờ nếu tôi có một lớp cha Character.cs. làm thế nào mà siêu lớp đó có thể thực hiện vũ khí để các lớp trẻ em có thể cụ thể hơn.
namespace Strategy
{
class Character
{
public IWeaponBehavior weapon;
public Character(IWeaponBehavior specificWeapon)
{
weapon = specificWeapon;
}
}
}
namespace Strategy
{
class Thief : Character
{
}
}
Làm cách nào để triển khai tính năng này? Tôi rất bối rối về những gì mã thực sự cần phải được.
Tôi biết điều này có thể đòi hỏi quá nhiều, nhưng nếu bạn có thể viết mã thực tế để tôi có thể nghiên cứu nó, điều đó sẽ rất tốt đẹp cho các bạn. Tôi học bằng cách nhìn thấy mã. : P Nhiều người có thể hưởng lợi từ câu hỏi này.
"SLASH SLASH!" quy tắc một phần :) – thelost
Tùy thuộc vào đặc tính khác của 'Ký tự' bạn có thể loại bỏ các lớp kế thừa và sử dụng một nhà máy có thể thiết lập các đặc tính và chiến lược cần thiết. –