close
1: interface IWeapon
2: {
3: void Use();
4: }
weapon 1: Sword
1: class Sword : IWeapon
2: {
3: public void Use()
4: {
5: Console.WriteLine("Sword");
6: }
7: }
weapon 2: Axe
1: class Axe:IWeapon
2: {
3: public void Use()
4: {
5: Console.WriteLine("Axe");
6: }
7: }
weapon 3: Club
1: class Club:IWeapon
2: {
3: public void Use()
4: {
5: Console.WriteLine("Club");
6: }
7: }
Character Class
1: class Character
2: {
3: IWeapon weapon;
4: public void SetWeapon(IWeapon weapon)
5: {
6: this.weapon = weapon;
7: }
8: public void Attack()
9: {
10: weapon.Use();
11: }
12: }
Null Object
1: class Null : IWeapon
2: {
3: public void Use()
4: {
5: Console.WriteLine("Null Object");
6: }
7: }
1: class Null : IWeapon
2: {
3: public void Use()
4: {
5: Console.WriteLine("Null Object");
6: }
7: }
Console
1: class Program
2: {
3: static void Main(string[] args)
4: {
5: IWeapon weapon = null;
6: Character ryan = new Character();
7:
8: while (true)
9: {
10: Console.WriteLine("Choose a weapon for ryan: 1.Sword 2. Axe 3. Club");
11: string input = Console.ReadLine();
12: switch(input)
13: {
14: case "1":
15: weapon = new Sword();
16: break;
17: case "2":
18: weapon = new Axe();
19: break;
20: case "3":
21: weapon = new Club();
22: break;
23: default:
24: weapon = new Null();
25: break;
26: }
27: ryan.SetWeapon(weapon);
28: ryan.Attack();
29: }
30: }
31: }
Referces:
全站熱搜
留言列表