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

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

    优点:高内聚。

    缺点:却高耦合!
  • 相关阅读:
    vue-element-admin中table分页改为前台处理
    vue项目如何部署到Tomcat中
    vuex之modules 热加载(hot update)
    持续学习
    css比较特殊选择器汇总(持续更新)
    关于伪元素before after总结
    ajax入门-实现省份下拉框
    super和this关键字的详解
    监听器
    当浏览器被关闭时,session是否被关闭?
  • 原文地址:https://www.cnblogs.com/shenlian/p/1882553.html
Copyright © 2011-2022 走看看