• 《深入浅出设计模式》一书学习(.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();
    }
    }
    }

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

    优点:高内聚。

    缺点:却高耦合!
  • 相关阅读:
    Linux 安装多版本Python
    ElasticSearch 镜像 & 安装 & 简易集群
    SpringBoot-异步调用@Async
    SprinigBoot整合Kafka
    Kafka快速安装部署
    Linux-JDK安装
    npm / yarn 配置镜像、使用方法
    React搭建项目(全家桶)
    原生JS 将canvas生成图片
    原生 JS 的 Base64 转码
  • 原文地址:https://www.cnblogs.com/shenlian/p/1882553.html
Copyright © 2020-2023  润新知