正 文

.NET泛型技巧之打造可复用的抽象工厂


www.7dspace.com  更新日期:2006-1-17 0:40:26  七度空间


  下面的代码演示了如何随心所欲生成想要的抽象工厂接口以及快速从现有单一产品工厂组合成特定的具体工厂实现。

class Program
{
 static IAbstractFactory<Processor, Ram> ComputerFactory(string type)
 {
  if (type == "Intel")
  {
   return ConcretFactory.NewFactory( new OpNewFactory<Processor, PentiumProcessor>(),
new OpNewFactory<Ram, DDR2Ram>());
  }
  else if (type == "AMD")
  {
   return ConcretFactory.NewFactory( new OpNewFactory<Processor, AthlonProcessor>(),
   new OpNewFactory<Ram, DDRRam>());
  }

  //unknown type
  return null;
 }

 static void Main(string[] args)
 {
  //Yield a computer of Intel
  IAbstractFactory<Processor, Ram> factory1 = ComputerFactory("Intel");

  Ram ram1 = factory1.Create(TypeToken<Ram>.Instance);
  Processor cup1 = factory1.Create(TypeToken<Processor>.Instance);

  Console.WriteLine("An Intel Computer");
  Console.WriteLine("CPU Model: {0}", cup1.Model);
  Console.WriteLine("Memory Frequency: {0} MHz", ram1.Frequency);

  Console.WriteLine();

  //Yield a computer of AMD
  IAbstractFactory<Processor, Ram> factory2 = ComputerFactory("AMD");

  Ram ram2 = factory2.Create(TypeToken<Ram>.Instance);
  Processor cup2 = factory2.Create(TypeToken<Processor>.Instance);

  Console.WriteLine("An AMD Computer");
  Console.WriteLine("CPU Model: {0}", cup2.Model);
  Console.WriteLine("Memory Frequency: {0} MHz", ram2.Frequency);
 }
}

  总结:

  我们用泛型技术成功地增强了原本重用性较低的抽象工厂,演示了泛型在提高抽象性和代码重用方面卓越的价值。

3页,页码:[1] [2] [3] 

上一篇:照片处理:保留皮肤纹理的自然美肤
下一篇:用Visual C++创建自定义的应用程序向导
标题:.NET泛型技巧之打造可复用的抽象工厂 作者:装配脑袋 来源:blog
收藏此页】【打印】【关闭
站 内 搜 索
 

热 点 导 读
特 别 推 荐