顶部468*60ad 顶部468*60ad 顶部468*60ad 顶部468*60ad

无废话C#设计模式之十一:Composite

2007-11-27 21:11:21  来源:博客园 LoveCherry

  public override void Add(Element element)
  {
  serviceList.Add((GameService)element);
  }
  public override void Remove(Element element)
  {
  serviceList.Remove((GameService)element);
  }
  public override void Display()
  {
  Console.WriteLine(string.Format("{0}{1}({2}){3}", new string('+', 10), name, serverIP, new string('+', 10)));
  foreach (Element element in serviceList)
  {
  element.Display();
  }
  }
  public override void Start()
网页教学网

  {
  serviceList.Sort();
  Console.WriteLine("=============Starting the whole " + name + "=============");
  for (int i = 0; i < serviceList.Count; i++ )
  {
  serviceList[i].Start();
  }
  Console.WriteLine("=============The whole " + name + " started=============");
  }
  public override void Stop()
  {
  Console.WriteLine("=============Stopping the whole " + name + "=============");
  for (int i = serviceList.Count -1; i >= 0; i--)
  {
  serviceList[i].Stop();
  }
  Console.WriteLine("=============The whole " + name + " stopped=============");
  }
  }
  class GameArea : Element
  {
  private List serverList = new List();
  public GameArea(string name)
  : base(name) { }
  public override void Add(Element element)
  {
  serverList.Add((GameServer)element);
  }
  public override void Remove(Element element)
  {
  serverList.Remove((GameServer)element);
  }
  public override void Display()
  {
  Console.WriteLine(new string('=',20));
  Console.WriteLine(" " + name);
  Console.WriteLine(new string('=', 20));
  foreach (Element element in serverList)
  {
  element.Display();
  }
  }
  public override void Start()
  {
  Console.WriteLine("=============Starting the whole " + name + "=============");
Webjx.Com

  foreach (Element element in serverList)
  {
  element.Start();
  }
  Console.WriteLine("=============The whole " + name + " started=============");
  }
  public override void Stop()
  {
  Console.WriteLine("=============Stopping the whole " + name + "=============");
  foreach (Element element in serverList)
  {
  element.Stop();
  }
  Console.WriteLine("=============The whole " + name + " stopped=============");
  }
  }
  }

网页教学网

  代码执行结果如下图:

Webjx.Com

  无废话C#设计模式之十一:Composite_网页教学网webjx.com转载

文章评论

共有 0 位网友发表了评论 查看完整内容

推荐文章