My Composite in C#

[入库:2005年8月18日] [更新:2007年3月25日]

本文简介:选择自 beautyispower 的 blog

//mycomposite
using system;
using system.collections;

//----------------------------------class fileelement
abstract class cfileelement
{
 //fields
 protected string name;
 
 public cfileelement(string name)
 {
  this.name=name;
 }

 public abstract void add(cfileelement e);
 public abstract void remove(cfileelement e);
 public abstract void display();
};

//class cfile
class cfile:cfileelement
{
 public cfile(string name):base(name){}
 
 public override void add(cfileelement e)
 {
  console.writeline("can't add any files under a file!");
 }
 public override void remove(cfileelement e) 
 {
  console.writeline("can't remove any sub files!");
 }
 public override void display()
 {
  console.writeline(this.name);
 }
};

//class cfolder
class cfolder:cfileelement
{
 private arraylist children =new arraylist();

 public cfolder(string name):base(name){}

 public override void add(cfileelement e)
 {
  children.add(e);
 }
 public override void remove(cfileelement e) 
 {
  children.remove(e);
 }
 public override void display()
 {
  console.writeline(this.name);
  foreach(cfileelement e in children)
  {
   e.display();
  }
 }

};
//----------------------------------class element

//testapp
class testapp
{
 public static void main(string[] args)
 {
     cfolder root = new cfolder("z:/");
  cfolder afolder=new cfolder("games/");
  
  afolder.add(new cfile("cstrike.exe"));
  root.add(afolder);
      
  root.display();
  while(true);
 }
};

本文关键:My Composite in C#
  相关方案
Google
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top