zoukankan      html  css  js  c++  java
  • 《深入浅出设计模式》一书学习(.net版—简单工厂)

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

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

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

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

    优点:高内聚。

    缺点:却高耦合!
  • 相关阅读:
    GUID概念
    某猿的饭局
    SVN切分支步骤
    OSX:设置用户默认浏览器
    值得推荐的android开发框架简单介绍
    用实力让情怀落地!阅兵前线指挥车同款电视TCL&#160;H8800受捧
    Excel查询序列所相应的值-vLoopup函数,求比例分子改变但分母不变
    CSS3制作W3cplus的关注面板
    Spring MVC框架实例
    @property 和@synthesize
  • 原文地址:https://www.cnblogs.com/shenlian/p/1882553.html
Copyright © 2011-2022 走看看