当前位置:首页 > 科技  > 软件

简单工厂模式在C#中的实现

来源: 责编: 时间:2024-07-23 07:18:16 602观看
导读简单工厂模式(Simple Factory Pattern)属于创建型模式,它定义了一个创建对象的类,由这个类来封装实例化对象的行为。在简单工厂模式中,可以根据参数的不同返回不同类的实例。简单工厂模式专门定义一个类来负责创建其他类的

简单工厂模式(Simple Factory Pattern)属于创建型模式,它定义了一个创建对象的类,由这个类来封装实例化对象的行为。在简单工厂模式中,可以根据参数的不同返回不同类的实例。简单工厂模式专门定义一个类来负责创建其他类的实例,被创建的实例通常具有共同的父类。IlP28资讯网——每日最新资讯28at.com

IlP28资讯网——每日最新资讯28at.com

一、简单工厂模式的结构

简单工厂模式主要包含以下角色:IlP28资讯网——每日最新资讯28at.com

  • 工厂类(Creator):这是简单工厂模式的核心,它负责实现创建所有实例的内部逻辑。工厂类可以被外界直接调用,创建所需的产品对象。
  • 抽象产品类(Product):简单工厂模式所创建的所有对象的父类,它负责描述所有实例所共有的公共接口。
  • 具体产品类(Concrete Product):简单工厂模式的创建目标,所有创建的对象都是充当这个角色的某个具体类的实例。

二、简单工厂模式的实现

下面通过C#代码示例来演示简单工厂模式的实现:IlP28资讯网——每日最新资讯28at.com

(1) 定义抽象产品类IlP28资讯网——每日最新资讯28at.com

public interface IProduct{    void Show();}

(2) 定义具体产品类IlP28资讯网——每日最新资讯28at.com

public class ConcreteProductA : IProduct{    public void Show()    {        Console.WriteLine("This is Product A");    }}public class ConcreteProductB : IProduct{    public void Show()    {        Console.WriteLine("This is Product B");    }}

(3) 定义工厂类IlP28资讯网——每日最新资讯28at.com

public class SimpleFactory{    public static IProduct CreateProduct(string type)    {        switch (type)        {            case "A":                return new ConcreteProductA();            case "B":                return new ConcreteProductB();            default:                throw new ArgumentException("Unknown product type");        }    }}

(4) 客户端代码IlP28资讯网——每日最新资讯28at.com

class Program{    static void Main(string[] args)    {        IProduct productA = SimpleFactory.CreateProduct("A");        productA.Show();        IProduct productB = SimpleFactory.CreateProduct("B");        productB.Show();    }}

三、简单工厂模式的优缺点

优点:IlP28资讯网——每日最新资讯28at.com

  • 工厂类含有必要的判断逻辑,可以决定在什么时候创建哪一个产品类的实例,客户端可以免除直接创建产品对象的责任,而仅仅“消费”产品。简单工厂模式通过这种做法实现了对责任的分割。
  • 客户端无须知道所创建的具体产品类的类名,只需要知道具体产品类所对应的参数即可。
  • 通过引入配置文件,可以在不修改任何客户端代码的情况下更换和增加新的具体产品类,在一定程度上提高了系统的灵活性。

缺点:IlP28资讯网——每日最新资讯28at.com

  • 由于工厂类集中了所有产品创建逻辑,一旦不能正常工作,整个系统都要受到影响。
  • 使用简单工厂模式将会增加系统中类的个数,在一定程序上增加了系统的复杂度和理解难度。
  • 系统扩展困难,一旦添加新产品就不得不修改工厂逻辑,在产品类型较多时,有可能造成工厂逻辑过于复杂,不利于系统的扩展和维护。

简单工厂模式作为一种简单且实用的创建型模式,在软件开发中得到了广泛的应用,特别是当系统中只需要一个工厂类或者系统中只需要创建少量对象时,使用简单工厂模式可以大大简化系统的实现,提高系统的可维护性和灵活性。IlP28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-102908-0.html简单工厂模式在C#中的实现

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: 深度选择器探秘:/deep/、>>>、::v-deep 与 v-deep() 的区别与用法

下一篇: Git merge 和 Git rebase,如何选择?

标签:
  • 热门焦点
  • 石头自清洁扫拖机器人G10S评测:多年黑科技集大成之作 懒人终极福音

    科技圈经常能看到一个词叫“缝合怪”,用来形容那些把好多功能或者外观结合在一起的产品,通常这样的词是贬义词,但如果真的是产品缝合的好、缝合的实用的话,那它就成了中性词,今
  • 7月安卓手机好评榜:三星S23Ultra好评率第一

    性能榜和性价比榜之后,我们来看最后的安卓手机好评榜,数据来源安兔兔评测,收集时间2023年7月1日至7月31日,仅限国内市场。第一名:三星Galaxy S23 Ultra好评率:95.71%在即将迎来新
  • 6月iOS设备好评榜:第一蝉联榜首近一年

    作为安兔兔各种榜单里变化最小的那个,2023年6月的iOS好评榜和上个月相比没有任何排名上的变化,仅仅是部分设备好评率的下降,长年累月的用户评价和逐渐退出市场的老款机器让这
  • 6月安卓手机性能榜:vivo/iQOO霸占旗舰排行榜前三

    2023年上半年已经正式过去了,我们也迎来了安兔兔V10版本,在新的骁龙8Gen3和天玑9300发布之前,性能榜的榜单大体会以骁龙8Gen2和天玑9200+为主,至于那颗3.36GHz的骁龙8Gen2领先
  • Raft算法:保障分布式系统共识的稳健之道

    1. 什么是Raft算法?Raft 是英文”Reliable、Replicated、Redundant、And Fault-Tolerant”(“可靠、可复制、可冗余、可容错”)的首字母缩写。Raft算法是一种用于在分布式系统
  • Flowable工作流引擎的科普与实践

    一.引言当我们在日常工作和业务中需要进行各种审批流程时,可能会面临一系列技术和业务上的挑战。手动处理这些审批流程可能会导致开发成本的增加以及业务复杂度的上升。在这
  • Temu起诉SHEIN,跨境电商战事升级

    来源 | 伯虎财经(bohuFN)作者 | 陈平安日前据外媒报道,拼多多旗下跨境电商平台Temu正对竞争对手SHEIN提起新诉讼,诉状称Shein“利用市场支配力量强迫服装厂商与之签订独家
  • 自律,给不了Keep自由!

    来源 | 互联网品牌官作者 | 李大为编排 | 又耳 审核 | 谷晓辉自律能不能给用户自由暂时不好说,但大概率不能给Keep自由。近日,全球最大的在线健身平台Keep正式登陆港交所,努力
  • 携众多高端产品亮相ChinaJoy,小米带来一场科技与人文的视听盛宴

    7月28日,全球数字娱乐领域最具知名度与影响力的年度盛会中国国际数码互动娱乐展览会(简称ChinaJoy)在上海新国际博览中心盛大开幕。作为全球领先的科
Top