《深入浅出设计模式》一书学习(.net版—简单工厂)

 

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

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

[email protected]

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

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

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

优点:高内聚。

缺点:却高耦合!

你可能感兴趣的:(.net)