code2012

加油,坚持,努力,自信
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

 

代码
深入浅出设计模式)设计模式--简单工厂

------------------------------

code_xyz@sina.com

-------------------------------

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Factory_abstract
{

/*
抽象产品,简单工厂模式所创建的实例的父类。它描述所有类的所有公共属性
*/
abstract class EFT
{
public abstract void process();
}

/// <summary>
/// 产品角色
/// </summary>
class VirtualCheck : EFT
{
public override void process()
{
Console.WriteLine(
"虚拟电子票在交易");
//throw new NotImplementedException();
}
}
/// <summary>
/// 产品角色
/// </summary>
class Carsh : EFT
{
public override void process()
{
Console.WriteLine(
"现金在交易");
//throw new NotImplementedException();
}
}

/// <summary>
/// 工厂角色
/// </summary>
///
/*
* 是简单工厂模式的核心,它负责实现创建所有是实例的内部逻辑,工厂类可以被外界直接调用,创建所需的产品对象!
*
*/
class EFTFactory
{
public EFT CreatEFT(string type)
{
switch (type.ToLower())
{
case "virtualcheck":
return new VirtualCheck();
case "carsh":
return new Carsh();
default: return null;
}
}


}


/// <summary>
/// 客户应用测试
/// </summary>
class client
{
static void Main(string[] args)
{
EFT eft;
EFTFactory eftCreator
= new EFTFactory();
eft
= eftCreator.CreatEFT("VirtualCheck");
eft.process();


eft
= eftCreator.CreatEFT("Carsh");
eft.process();
Console.ReadKey();
}
}
}

------------------------------------------------------------------------------------------------------------------------------------------------------

优点:高内聚。

缺点:却高耦合!