代码
深入浅出设计模式)设计模式--简单工厂
------------------------------
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();
}
}
}
------------------------------------------------------------------------------------------------------------------------------------------------------
优点:高内聚。
缺点:却高耦合!