ID:2
要闻频道: 要闻 / 产业 / 国内 / 国际 / 专题 /
  • 恢复出厂设置是什么意思(什么是工厂模式)

    2023-10-05 20:18:09 luolss777.com 股票学习网 收藏

什么是工厂模式(恢复出厂设置是什么意思)能让面试官满意的:你对工厂模式的理解?

前言

设计模式对于一些初级开发者来说,可能并未着重关注。不过随着开发的深入,读者会慢慢体会到设计模式的重要性。深入掌握并加以运用会使你的代码得到质的提升,同时也是读者开发水平的一个体现。

于是,基于个人的理解以及对一些资料的总结便写了这篇文章,以最通俗易懂的方式为读者讲解每一种模式。力求读者一看就懂,且看完会有所收获。当然,前提是坚持看完。因为如果你只是看一眼就滑走那么这篇文章将毫无意义。

本文能为读者创造的价值:

1. 理解什么是工厂模式

2. 提取源码中的工厂模式应用,提升源码阅读能力

3. 为读者工作中的业务代码设计提供编程设计思路,提升读者的代码质量

4. 提升个人职业价值(说白了就是面试官问了工厂模式你看了这篇文章理解得更多,而你的竞争者却一无所知,那么你的优势就很明显了)

掌握设计模式的三个过程:

1、理解:通过本文理解设计模式

2、识别:阅读代码的时候能够识别出应用了哪种设计模式

3、应用:当接到业务的时候,能够反应出可以应用哪种设计模式并加以实现(读者想要达到这个程度,需要反复重复“识别”的过程)

一、简单工厂模式

想象这样一个业务场景:一个生产食物的工厂类(FoodFactory),该工厂需要根据消费者的不同需求去生产不同的食物(面条noodle、鸡肉chicken),那么简单工厂模式就产生了,看代码(对照这段描述):

能让面试官满意的:你对工厂模式的理解?

注:noodle和chicken都继承自食物类food(派生关系)

这样简单工厂模式就实现了,总结一下:一个工厂类(XxxFactory),提供一个生产的方法(makeXxxx),根据消费者的不同需求(入参name)创建不同类型的食物对象(noodle/chicken)。

二、工厂模式

对于单个工厂来说,简单工厂模式足够支撑。不过涉及到多个工厂的话,就需要工厂模式了。

基于之前的业务场景,试想一下,客户需要对食物做分类了:中餐、西餐。那么这个时候就产生了两个工厂的需求(ChineseFoodFactory和WesternFoodFactory),上代码:

能让面试官满意的:你对工厂模式的理解?

注:这里以noodle和chicken结尾的类都继承自食物类food(派生关系)

是的,你是否觉得有点眼熟(如果你已经理解了简单工厂模式,你应该发现了这是两个简单工厂模式。如果你没发现的话,请回到简单工厂模式重新理解一次)。好的,修改一下代码,工厂模式实现:

能让面试官满意的:你对工厂模式的理解?

注:更改的部分已经标了出来,实际上是做了一个接口,把工厂的实例化作了抽象,这是工厂模式的关键思想

调用代码:

能让面试官满意的:你对工厂模式的理解?

看到这里,其实读者应该已经大概理解,工厂模式是在简单工厂的基础上,将具体工厂的实例化作抽象选择。

我在文章开头提到过,读者想要有所收获的前提是:坚持看完,如果你已经看到了这里,说明你理解了这个前提,go on!

三、抽象工厂模式

引用一个经典例子:制造一台电脑

CPU、主板、内存……一种配件就需要一个工厂,如果读者已经理解了前面讲的工厂模式,那么你现在脑海里应该已经有了一个大概的思路,再体会一下这个过程,其实这就是设计模式为你带来的提升。如果没有的话,请回到前面再看一遍。让我来猜一下你的思路(拿cpu来举例):

能让面试官满意的:你对工厂模式的理解?

将各个配件工厂组装成电脑:

能让面试官满意的:你对工厂模式的理解?

写到这里,工厂模式的问题就产生了:试想一下,如果内存和主板型号不兼容,那么将导致电脑不可用,bug就产生了。

想解决兼容问题,就需要舍弃客户自由选择工厂对象的权力,并指定各个工厂生产的对象做一个固定的组合(产品族,产品族的说明图我放在了最下面),这就是抽象工厂模式的设计思路,看代码:

能让面试官满意的:你对工厂模式的理解?

本文标题:恢复出厂设置是什么意思(什么是工厂模式) - 要闻
本文地址:www.luolss777/caijing/yaowen/28997.html

相关阅读
  • 恢复出厂设置是什么意思(什么是工厂模式)

    恢复出厂设置是什么意思(什么是工厂模式)

    什么是工厂模式(恢复出厂设置是什么意思) 前言 设计模式对于一些初级开发者来说,可能并未着重关注。不过随着开发的深入,读者会慢慢体会到设计模式的重要性。深入掌握并加以运...

    2023-10-05 20:18:09 luolss777.com
  • 魔兽世界开启帧数快捷键(魔兽世界帧数显示快捷键)

    魔兽世界开启帧数快捷键(魔兽世界帧数显示快捷键)

    最近有人问到那些评测的是用什么方法在游戏中显示硬件数据和帧数的呢? 游戏显示硬件数据和帧数 或许很多人知道,但同样很多人不知道。今天就说一下。 一般显示数据以及帧数玩...

    2023-10-05 20:17:47 luolss777.com
  • 铜绿丽金龟对人有毒吗(铜绿金龟子)

    铜绿丽金龟对人有毒吗(铜绿金龟子)

    铜绿金龟子(铜绿丽金龟对人有毒吗) [为害症状] 幼虫(蛴螬)是重要的地下害虫,生活在土壤中,取食萌发的种子,造成缺苗断垄,咬断幼茎,导致植株枯死;取食根系,使植物衰弱,且伤口易被病菌...

    2023-10-05 20:17:15 luolss777.com
  • 手机音乐下载免费歌曲(免费下载音乐到手机)

    手机音乐下载免费歌曲(免费下载音乐到手机)

    网上各音乐播放器软件,曲库里提供大量的音源。这比过去音乐商店买盒式磁带、CD碟片方便多了,足不出户,就可网上下载。 网上提供的音源,大多为过去的磁带、CD转换编码格式而成,称...

    2023-10-05 20:16:52 luolss777.com
  • 可爱的中国电视剧(1-39集)剧情介绍

    可爱的中国电视剧(1-39集)剧情介绍

    《可爱的中国》是由吴子牛执导,林江国领衔主演,缪婷茹、唐国强、张歌、印小天、郭广平联袂主演的革命历史剧。全剧39集,播到11集。该剧讲述了红十军创始人方志敏投身革命,始终...

    2023-10-05 18:16:16 luolss777.com

本文恢复出厂设置是什么意思(什么是工厂模式)由777股票学习网(luolss777.com)首发,欢迎转载,转载请带上本文链接。
免责声明:777股票学习网(www.luolss777.com)发布的所有信息,并不代表本站赞同其观 点和对其真实性负责,投资者据此操作,风险请自担。部分内容文章及图 片来自互联网或自媒体,版权归属于原作者,不保证该信息(包括但不限 于文字、图片、图表及数据)的准确性、真实性、完整性、有效性、及时 性、原创性等,如无意侵犯媒体或个人知识产权,请联系我们或致函告之 ,本站将在第一时间处理。关注财经365公众号(caijing365wz),获取最优质的财经报道! 分享到: 新浪微博 微信

扫描左侧二维码
看手机移动端,随时随地看 股票 新闻