
using System;
using System.Collections.Generic;
using System.Text;
namespace ConsoleApplication1
{
abstract class Order
{
protected General general;
public Order(General g)
{
this.general = g;
}
public abstract void Excute();
}
class Fire : Order
{
public Fire(General g)
: base(g)
{ }
public override void Excute()
{
general.ExcuteFire();
}
}
class Retreat : Order
{
public Retreat(General g)
: base(g)
{ }
public override void Excute()
{
general.ExcuteRetreat();
}
}
class Soldier
{
private String name;
public Soldier(string n)
{
this.name = n;
}
public void ExcuteFire()
{
Console.WriteLine(name+"开火");
}
public void ExcuteRetreat()
{
Console.WriteLine(name+"撤退");
}
}
class General
{
private Soldier soldier;
public void ExcuteFire()
{
soldier.ExcuteFire();
}
public void SetSoldier(Soldier s)
{
this.soldier = s;
}
public void ExcuteRetreat()
{
soldier.ExcuteRetreat();
}
}
class Client
{
public static void Main()
{
General g = new General();
Soldier s = new Soldier("张三");
g.SetSoldier(s);
Order o = new Fire(g);
o.Excute();
o = new Retreat(g);
o.Excute();
g.SetSoldier(new Soldier("李四"));
o.Excute();
Console.Read();
}
}
}

被折叠的 条评论
为什么被折叠?



