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

C#设计模式之抽象工厂(abstract factory)模式示例源代码 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 (); } } }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值