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

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

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

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

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

一、简单工厂模式的结构

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

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

二、简单工厂模式的实现

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

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

public interface IProduct{    void Show();}

(2) 定义具体产品类iO228资讯网——每日最新资讯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) 定义工厂类iO228资讯网——每日最新资讯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) 客户端代码iO228资讯网——每日最新资讯28at.com

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

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

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

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

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

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

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

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

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

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

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

标签:
  • 热门焦点
  • 直屏旗舰来了 iQOO 12和K70 Pro同台竞技

    旗舰机基本上使用的都是双曲面屏幕,这就让很多喜欢直屏的爱好者在苦等一款直屏旗舰,这次,你们等到了。据博主数码闲聊站带来的最新爆料称,Redmi下代旗舰K70 Pro和iQOO 12两款手
  • 7月安卓手机性能榜:红魔8S Pro再夺榜首

    7月份的手机市场风平浪静,除了红魔和努比亚带来了两款搭载骁龙8Gen2领先版处理器的新机之外,别的也想不到有什么新品了,这也正常,通常6月7月都是手机厂商修整的时间,进入8月份之
  • 5月iOS设备性能榜:M1 M2依旧是榜单前五

    和上个月一样,没有新品发布的iOS设备性能榜的上榜设备并没有什么更替,仅仅只有跑分变化而产生的排名变动,刚刚开始的苹果WWDC2023,推出的产品也依旧是新款Mac Pro、新款Mac Stu
  • Automa-通过连接块来自动化你的浏览器

    1、前言通过浏览器插件可实现自动化脚本的录制与编写,具有代表性的工具就是:Selenium IDE、Katalon Recorder,对于简单的业务来说可快速实现自动化的上手工作。Selenium IDEKat
  • 花7万退货退款无门:谁在纵容淘宝珠宝商家造假?

    来源:极点商业作者:杨铭在淘宝购买珠宝玉石后,因为保证金不够赔付,店铺关闭,退货退款难、维权无门的比比皆是。“提供相关产品鉴定证书,支持全国复检,可以30天无理由退换货。&
  • 华为和江淮汽车合作开发百万元问界MPV?双方回应来了

    8月1日消息,郭明錤今天在社交平台发文称,华为正在和江淮汽车合作,开发售价在100万元的问界MPV,预计在2024年第2季度量产,销量目标为上市首年交付5万辆。
  • 2299元起!iQOO Pad明晚首销:性能最强天玑平板

    5月23日,iQOO如期举行了新品发布会,除了首发安卓最强旗舰处理器的iQOO Neo8系列新机外,还在发布会上推出了旗下首款平板电脑——iQOO Pad,其最大的卖点
  • 2022爆款:ROG魔霸6 冰川散热系统持续护航

    喜逢开学季,各大商家开始推出自己的新产品,进行打折促销活动。对于忠实的端游爱好者来说,能够拥有一款梦寐以求的笔记本电脑是一件十分开心的事。但是现在的
  • 上海举办人工智能大会活动,建设人工智能新高地

    人工智能大会在上海浦江两岸隆重拉开帷幕,人工智能新技术、新产品、新应用、新理念集中亮相。8月30日晚,作为大会的特色活动之一的上海人工智能发展盛典人工
Top