您所在的位置: 首页>>开发>>.Net>>c#>>

C#设计模式之抽象工厂(abstract factory)模式示例源代码

http://developer.51cto.com  2005-09-30 09:28  51cto.com整理  51cto.com  我要评论(0)
  • 摘要:本文是C#设计模式之抽象工厂(abstract factory)模式示例源代码
  • 标签:模式  C#

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 ();
}
}  }


C#实用基础教程
C#技术开发指南
走向银光 —— 一步一步学Silverlight2
让你的代码“炫”起来——WPF开发教程
WebSphere 实现SOA的利器
 
 验证码: (点击刷新验证码)   匿名发表
  • Visual C++ 6.0完全自学宝典

  • 作者:强锋科技,朱洪波
  • Visual C++ 6.0是微软公司为程序人员提供的Visual Studio 6.0工具套件中的重要组成部分。本书由浅入深地介绍使用Visual C++ 6.0..
Copyright©2005-2008 51CTO.COM 版权所有