科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件无废话C#设计模式之十一:Composite

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

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

本系列文章将向大家介绍一下C#的设计模式,此为第十一篇文章,相信对大家会有所帮助的。废话不多说,继续来看。

作者:LoveCherry 来源:博客园 2007年12月4日

关键字:

  • 评论
  • 分享微博
  • 分享邮件
以下是引用片段:
  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 + "=============");
  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=============");
  }
  }
  }

  代码执行结果如下图:

  

 
    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章