| 网站首页 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛 |
 
| 技术教程首页 | 开发语言 | WEB开发 | .NET技术 | 数据库 | 操作系统 | 网页制作 |
 
 
您现在的位置: 编程中国 >> 技术教程 >> .NET技术 >> C# >> C#技术资料 >> 正文
  ►  C#设计模式之抽象工厂(abstract factory)模式示例源代码
C#设计模式之抽象工厂(abstract factory)模式示例源代码
作者:佚名    阅读人次:……    文章来源:未知    发布时间:2005-11-5    网友评论()条
 

using System;

namespace Design_Pattern
{

 public class  Computer
 {
  private RAM Ram;
  private CPU Cpu;
  public Computer(RAM ram,CPU cpu)
  {
   this.Ram =ram;
   this.Cpu =cpu;
   
   Console .WriteLine("A Computer is Composed! "+this.Ram +" "+this.Cpu );
  }
 }

 public abstract class RAM
 {
  public abstract  Computer ComposeAComputer(CPU cpu);
 }
 public abstract class CPU
 {
 public abstract  Computer ComposeAComputer(RAM ram);
 }
 

 public class pcRAM:RAM
 {
  public override Computer ComposeAComputer(CPU cpu)
  {
   Console .WriteLine ("pcComputer...");

   return new Computer(this,cpu);
  }

  
 }

 public class pcCPU:CPU
 {
  public override Computer ComposeAComputer(RAM ram)
  {
   Console .WriteLine ("pcComputer...");

   return new Computer(ram,this);
  }

 }


 public class macRAM:RAM
 {
  public override Computer ComposeAComputer(CPU cpu)
  {
   Console .WriteLine ("MacComputer...");
   return new Computer(this,cpu);
  }

  
 }

 public class macCPU:CPU
 {
  public override Computer ComposeAComputer(RAM ram)
  {
   Console .WriteLine ("MacComputer...");
   return new Computer(ram,this);
  }

 }
 
 public abstract class abstractFactory
{
       public abstract  RAM CreateRam();
   public abstract CPU CreateCpu() ;
}

 public class PcFactory:abstractFactory
 {
  public override RAM CreateRam()
  {
   return new pcRAM();
  }
  public override CPU CreateCpu()
  {
   return new pcCPU();
  }

 }


 public class MacFactory:abstractFactory
 {
  public override RAM CreateRam()
  {
   return new macRAM();

  }
  public override CPU CreateCpu()
  {
   return new macCPU();
  }


 }

 class ITMarket
 {
  private RAM ram;
  private CPU cpu;
  public ITMarket(abstractFactory factory)
  {
   this.ram =factory.CreateRam();
   this.cpu =factory.CreateCpu();
  }
  public void Run()
  {
   ram.ComposeAComputer(cpu);
   cpu.ComposeAComputer(ram);
  }

 }

 class ClientApp
 {
  public static void Main(string[] args)
  {
   Console .WriteLine("PC Factory.....\n");
   abstractFactory pcfactory=new PcFactory ();
   ITMarket itMarket=new ITMarket (pcfactory);
   itMarket .Run ();

   Console .WriteLine("MAC Factory.....\n");
   abstractFactory macfactory=new MacFactory();
   itMarket =new ITMarket (macfactory);
   itMarket .Run ();
  }
 }

   

}

 

 
文章录入:静夜思    责任编辑:静夜思 
  • 上一篇文章:

  • 下一篇文章:

  •  
    相关文章
    原创地带
    24小时热门帖子