【5min+】 设计模式的迷惑?Provider vs Factory

本文通过分析.NET中的ILoggerProvider和ILoggerFactory,探讨了Provider模式与Factory模式的区别。Provider模式融合了策略模式和抽象工厂模式,专注于小粒度对象的创建,强调可替换性和灵活性,常用于有多种创建方案的场景。而Factory模式则更关注对象的组装和创建过程。文章通过实例故事帮助理解两者的应用场景和特点。
摘要由CSDN通过智能技术生成

系列介绍

【五分钟的dotnet】是一个利用您的碎片化时间来学习和丰富.net知识的博文系列。它所包含了.net体系中可能会涉及到的方方面面,比如C#的小细节,AspnetCore,微服务中的.net知识等等。
5min+不是超过5分钟的意思,"+"是知识的增加。so,它是让您花费5分钟以下的时间来提升您的知识储备量。

正文

一说起设计模式,大家应该都不会太陌生。毕竟在面向对象的世界中,我们需要用到各种奇技淫巧的手段来构建我们的应用,而设计模式就是这些技巧的根本。如果您曾参与过计算机职业资格考试(俗称软考),就会发现:无论是初级、中级还是高级,都会有关于设计模式的考题,而且分值比重还很大。这也侧面说明了,学习设计模式的重要性。

如果一谈起设计模式,立马浮现在您脑中的模式有哪些呢:“单例”、“迭代器”、“外观”、“桥接”………… 然而,就在上周的时候,我突然遇到了这么一个问题:当我想为创建一个对象进行抽象时,我不知道如何命名该创建类的名称了。 您可能会说“这还不简单,要创建肯定是属于创建类型,那很大几率就是“XXFactory”呀,就是所谓的工厂模式”。是的,我最初的时候也是这么想的,但是我心里又出现了另外的一个单词:“Provider”。

Provider? 可能有些小伙伴会有一些陌生,因为它并没有出现在GOF所提出的24个模式中。而它又是什么东西呢? 经过我一番查找,发现它是由微软在“.NET 1.1 framework”提出的一种模式。当然,距离.NET 1.1 framework发布至今已经过了很多年了。也正是经历了这么多年的成长,所以微软的许多代码中您都会发现“Provider”的身影。 比如咱们在AspNetCore中再熟悉不过的Logger,它就是由“ILoggerProvider”来创建的,还有依赖注入的“IServiceProvider”等等。

疑惑

可能也是因为看多了“Provider”这个单词,所以才出现了我上面的纠结。但是,我突然想了想,既然都是向外界提供一个结果,那么Provider和Factory到底有什么不同呢?

于是乎,我再次尝试了 “百度不行就谷歌” 的程序员大法进行一波骚操作。但是看了结果之后我的心是拔凉拔凉啊:😭

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值