当前位置:网站首页>工厂模式和策略模式的区别
工厂模式和策略模式的区别
2022-06-29 08:17:00 【amateur12】
同:
在模式结构上,两者很相似

异:
1.工厂是创建型模式,它的作用就是创建对象,根据传参不同,创建不同对象,创建完对象再使用对象的方法
策略是行为型模式,它的作用是让一个对象在许多行为中选择一种行为
2.一个关注对象创建,一个关注行为封装
3.工厂传参是一个类型,策略传参是一个new对象
总结:
工厂模式可以做到的事情,策略模式都可以做到。策略模式可以做到的事情,工厂模式也可以做到,只是会变得麻烦。因为,工厂模式主要是返回的接口实现类的实例化对象,然后再调用对象的方法,而策略模式的对象是在实例化策略模式的时候已经创建好了,我们可以在策略模式中随意的拼接重写方法,而工厂模式是不管方法的拼接这些的,他只关注最后的结果,不注重过程,每次只返回实例化对象,然后再一次一次调用对象的方法,而策略模式注重的是过程。
分别适用场景:
工厂模式是创建型的设计模式,它接受指令,创建出需要的实例;主要解决的是资源的统一分发,将对象的创建完全独立出来,让对象的创建和具体的使用客户无关。主要应用在多数据库选择,类库文件加载等。
策略模式是为解决策略的切换与扩展,更简洁的说是定义策略族,分别封装起来,让他们之间可以相互替换,策略模式让策略的变化独立于使用策略的客户。
补充:
策略模式和微服务:
策略模式和微服务很像,比如我们写3个接口,吃饭是一个微服务,跑步是一个微服务,穿衣是一个微服务。策略模式的宗旨就是将各项方法之间连接起来,达到一个新的方法,微服务的宗旨也是防止服务的多次调用,降低代码的耦合度,因此这么看来策略模式和微服务还是比较像的
边栏推荐
- A high-frequency problem, three kinds of model thinking to solve this risk control problem
- Voice annotation tool: Praat
- 【最全】PS各个版本下载安装及小试牛刀教程(PhotoShop CS3 ~~ PhotoShop 2022)
- La finale de la zone de compétition Hefei de la sixième saison 2022 a été couronnée de succès.
- Debugging nocturnal simulator with ADB command
- Application of mediastreamer2 and GStreamer in embedded field
- 《乔布斯传》英文原著重点词汇笔记(七)【 chapter five】
- Standard | China payment and clearing Association releases the first privacy computing financial specification
- Transformer details
- Speech synthesis: overview [generation task of unequal length sequence relation modeling]
猜你喜欢

2022第六季完美童模 合肥賽區 决賽圓滿落幕

闭关修炼(二十五)基础web安全

2022春夏系列 KOREANO ESSENTIAL重塑时装生命力
![Speech synthesis: overview [generation task of unequal length sequence relation modeling]](/img/13/bd9def50f0efde49b622d139f63a83.png)
Speech synthesis: overview [generation task of unequal length sequence relation modeling]
![[redis] redis6 learning framework ideas and details](/img/64/836b1f8843a8eb91ff8da8c05ccd87.png)
[redis] redis6 learning framework ideas and details

Wallpaper applet source code double ended wechat Tiktok applet

ThreadLocal thread variable

城通网盘仿蓝奏网盘源码 附带视频教程

【微服务|OpenFeign】openfeign的超时时间

Oracle subquery
随机推荐
分布式数字身份的几个“非技术”思考
Debugging nocturnal simulator with ADB command
闭关修炼(二十一)Servlet生命周期、service方法源码分析、线程安全问题
搭建开源物联网平台教程
Backpack Lecture 9 - detailed understanding and code implementation
背包九讲——全篇详细理解与代码实现
闭关修炼(二十)如何做好单元测试
Matlab 用法
PaddleNLP通用信息抽取模型:UIE【信息抽取{实体关系抽取、中文分词、精准实体标。情感分析等}、文本纠错、问答系统、闲聊机器人、定制训练】
Np5 formatted output (III)
今天让你知道PMP考试通过率达97%,可信不可信
Paddlenlp general information extraction model: UIE [information extraction {entity relationship extraction, Chinese word segmentation, accurate entity markers, emotion analysis, etc.}, text error cor
P4769-[NOI2018]冒泡排序【组合数学,树状数组】
Notes on key words in the original English work biography of jobs (VII) [chapter five]
开户买基金,通过网上基金开户安全吗?-
P6772 [noi2020] gourmet (matrix fast power)
闭关修炼(二十五)基础web安全
图解SOC中的Timer(一):系统里有哪些Timer?
首次触电,原来你是这样的龙蜥社区 | 龙蜥开发者说第8期
使用adb命令调试夜神模拟器