策略模式在社会中的应用

news2024/12/23 6:12:07

文章目录

  • 🌟 如何将设计模式策略模式运用到社会当中
    • 🍊 什么是策略模式
    • 🍊 策略模式在社会中的应用
      • 🎉 1. 政治选举
      • 🎉 2. 商业竞争
      • 🎉 3. 教育培训
    • 🍊 策略模式的优缺点
      • 🎉 优点
      • 🎉 缺点
    • 🍊 总结

📕我是廖志伟,一名Java开发工程师、Java领域优质创作者、CSDN博客专家、51CTO专家博主、阿里云专家博主、清华大学出版社签约作者、产品软文创造者、技术文章评审老师、问卷调查设计师、个人社区创始人、开源项目贡献者。🌎跑过十五公里、徒步爬过衡山、🔥有过三个月减肥20斤的经历、是个喜欢躺平的狠人。

📘拥有多年一线研发和团队管理经验,研究过主流框架的底层源码(Spring、SpringBoot、Spring MVC、SpringCould、Mybatis、Dubbo、Zookeeper),消息中间件底层架构原理(RabbitMQ、RockerMQ、Kafka)、Redis缓存、MySQL关系型数据库、 ElasticSearch全文搜索、MongoDB非关系型数据库、Apache ShardingSphere分库分表读写分离、设计模式、领域驱动DDD、Kubernetes容器编排等。🎥有从0到1的高并发项目经验,利用弹性伸缩、负载均衡、报警任务、自启动脚本,最高压测过200台机器,有着丰富的项目调优经验。

以梦为马,不负韶华

希望各位读者大大多多支持用心写文章的博主,现在时代变了,信息爆炸,酒香也怕巷子深,博主真的需要大家的帮助才能在这片海洋中继续发光发热,所以,赶紧动动你的小手,点波关注❤️,点波赞👍,点波收藏⭐,甚至点波评论✍️,都是对博主最好的支持和鼓励!

  • 💂 博客主页: 我是廖志伟
  • 👉开源项目:java_wxid
  • 🌥 哔哩哔哩:我是廖志伟
  • 🎏个人社区:幕后大佬
  • 🔖个人微信号SeniorRD

📥博主的人生感悟和目标

探寻内心世界,博主分享人生感悟与未来目标

  • 🍋程序开发这条路不能停,停下来容易被淘汰掉,吃不了自律的苦,就要受平庸的罪,持续的能力才能带来持续的自信。我本是是一个很普通程序员,放在人堆里,除了与生俱来的盛世美颜,就剩180的大高个了,就是我这样的一个人,默默写博文也有好多年了。
  • 📺有句老话说的好,牛逼之前都是傻逼式的坚持,希望自己可以通过大量的作品、时间的积累、个人魅力、运气、时机,可以打造属于自己的技术影响力。
  • 💥内心起伏不定,我时而激动,时而沉思。我希望自己能成为一个综合性人才,具备技术、业务和管理方面的精湛技能。我想成为产品架构路线的总设计师,团队的指挥者,技术团队的中流砥柱,企业战略和资本规划的实战专家。
  • 🎉这个目标的实现需要不懈的努力和持续的成长,但我必须努力追求。因为我知道,只有成为这样的人才,我才能在职业生涯中不断前进并为企业的发展带来真正的价值。在这个不断变化的时代,我必须随时准备好迎接挑战,不断学习和探索新的领域,才能不断地向前推进。我坚信,只要我不断努力,我一定会达到自己的目标。

CSDN

📙经过多年在CSDN创作上千篇文章的经验积累,我已经拥有了不错的写作技巧。同时,我还与清华大学出版社签下了四本书籍的合约,并将陆续在明年出版。这些书籍包括了基础篇、进阶篇、架构篇的📌《Java项目实战—深入理解大型互联网企业通用技术》📌,以及📚《解密程序员的思维密码–沟通、演讲、思考的实践》📚。具体出版计划会根据实际情况进行调整,希望各位读者朋友能够多多支持!

🌾阅读前,快速浏览目录和章节概览可帮助了解文章结构、内容和作者的重点。了解自己希望从中获得什么样的知识或经验是非常重要的。建议在阅读时做笔记、思考问题、自我提问,以加深理解和吸收知识。阅读结束后,反思和总结所学内容,并尝试应用到现实中,有助于深化理解和应用知识。与朋友或同事分享所读内容,讨论细节并获得反馈,也有助于加深对知识的理解和吸收。

🔔如果您需要转载或者搬运这篇文章的话,非常欢迎您私信我哦~

💡在这个美好的时刻,本人不再啰嗦废话,现在毫不拖延地进入文章所要讨论的主题。接下来,我将为大家呈现正文内容。

CSDN

🌟 如何将设计模式策略模式运用到社会当中

设计模式是指软件设计中一些常见的问题和经验的总结,是对软件设计过程中通用的问题、场景和架构的解决方案的抽象。设计模式有很多种类,其中策略模式是常用的一种设计模式,其核心思想是将算法的实现与算法的调用分离开来,从而使算法的实现可以独立于使用算法的客户端。在实际的社会中,策略模式也有着广泛的应用。

🍊 什么是策略模式

策略模式是一种定义一系列算法的方法,从概念上来说,所有这些算法完成的都是相同的工作,只是实现不同,它可以让算法的变化独立于使用它的客户端。也就是说,使用策略模式可以将算法的实现与算法的调用分离开来,从而使得算法的实现可以独立于使用算法的客户端。

在策略模式中,定义了一些独立的算法,每一个算法都封装在一个类中,并且这些类实现了同一个接口,这个接口就是策略接口,而客户端则通过策略接口来调用具体的算法实现,这些算法实现就是不同的策略。

🍊 策略模式在社会中的应用

策略模式在社会中的应用非常广泛,下面我们就来看看一些具体的例子。

🎉 1. 政治选举

政治选举中,候选人的竞选策略就是一种策略模式。候选人可以通过不同的策略来争取选民的支持,比如说:

  • 走街串巷,给选民发传单;
  • 在电视上播放广告,宣传政见;
  • 举行集会,和选民进行面对面的交流等。

这些都是不同的策略,它们的目的都是为了争取选民的支持。而客户端就是选民,他们通过了解候选人的策略来进行投票选择。

🎉 2. 商业竞争

商业竞争中,各个企业的营销策略也是一种策略模式。企业可以通过不同的策略来吸引消费者的眼球,比如说:

  • 打折促销;
  • 推出新产品;
  • 进行赠品活动等等。

这些都是不同的策略,它们的目的都是为了吸引消费者的购买。而客户端就是消费者,他们通过了解企业的营销策略来进行购物选择。

🎉 3. 教育培训

教育培训中,教学策略也是一种策略模式。教师可以通过不同的策略来进行教学,比如说:

  • 利用多媒体进行讲解;
  • 小组合作学习;
  • 个性化辅导等等。

这些都是不同的策略,它们的目的都是为了提高学生的学习效果。而客户端就是学生,他们通过了解教师的教学策略来进行学习选择。

🍊 策略模式的优缺点

策略模式在社会中的应用非常广泛,但它也有自己的优点和缺点。

🎉 优点

  • 算法的实现和使用分离,更符合单一职责原则,降低维护成本。
  • 多态特性的运用,使得算法的替换更为方便灵活,也更加符合开闭原则。
  • 代码复用性高,不同的算法可以复用同一个接口,降低代码重复率。

🎉 缺点

  • 需要客户端对策略接口进行了解,增加了客户端的理解和使用难度。
  • 策略模式会增加系统中类的数量,增加了系统的复杂度。

🍊 总结

策略模式是一种常用的设计模式,它将算法的实现和算法的调用分离开来,从而使得算法可以独立于客户端进行变化。在社会中,策略模式有着广泛的应用,比如政治选举、商业竞争、教育培训等等。虽然策略模式在使用上存在一些缺点,但它的优点也是非常明显的,能够帮助我们更加灵活地应对问题,提高系统的设计质量。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1119393.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SSM - Springboot - MyBatis-Plus 全栈体系(三十三)

第八章 项目实战 终极实战:SpringBoot 版微头条实战 一、微头条案例介绍 1. 微头条业务简介 用户功能 注册功能登录功能jwt 实现 头条新闻 新闻的分页浏览通过标题关键字搜索新闻查看新闻详情新闻的修改和删除 2. 技术栈介绍 2.1 前端技术栈 ES6 作为基础 J…

操作系统——信号量机制(王道视频p30、课本ch6)

1.记忆有技巧:PV操作 —— wait,signal ——肯定是先申请/等待,再释放 2.这里特别指出 记录型信号量就是 后面会重点研究的内容

软件测试肖sir__python之ui自动化实战和讲解(03)

python之ui自动化实战和讲解 一、讲解常见控件定位 链接:http://cms.duoceshi.cn/cms/manage/login.do 1、定位文本框,密码框,按钮 2. 输入 :send_keys()方法 3、点击 :click() 方法 案例&…

uniapp在线预约到家按摩系统安装部署二次开发 可以搭建H5公众号+小程序+APP

后端Thinkphp框架开发。前端采用uni-app开发,适配多端(小程序+公众号H5+APP)源码全开源。 Nginx1.22.1Mysql5.6php7.3redis扩展 支持h5、公众号、小程序、APP,提供相关教程和详细功能文档! 含开…

LeetCode算法刷题(python) Day41|09动态规划|理论基础、509. 斐波那契数、70. 爬楼梯、746. 使用最小花费爬楼梯

目录 动规五部曲LeetCode 509. 斐波那契数LeetCode 70. 爬楼梯LeetCode 746. 使用最小花费爬楼梯 动规五部曲 确定dp数组以及下标的含义确定递归公式dp数组如何初始化确定遍历顺序举例推导dp数组 LeetCode 509. 斐波那契数 力扣题目链接 本题最直观是用递归方法 class Sol…

GIL全局解释器锁

文章目录 GIL全局解释器锁一、引入:二、GIL介绍三、GIL与Lock四、GIL与多线程总结 GIL全局解释器锁 一、引入: 首先要明白,GIL并不是Python的一个特性,其实在我们通常所称呼的Python解释器,其实是CPython解释器&…

excel, 熟悉了一般应用的函数,为何还有必要学vba

背景: 1. win10, office 2016, hp Elitebook笔记本电脑 2. 统计数量时,在sheet (工作表)页面使用函数 sum通过类似 sum(c6:c8) 进行求和,其中C7未被计算在内,例子见图片或附件。即使使用 “数据透视表”…

基于QT的学生考勤系统

低价有偿-获取代码: 知识付费时代,低价有偿获取代码,请理解! (1) 下载链接: 后补。 (2) 添加博主微信获取(有偿),备注来源: mryang511688 项目描述 技术:C、QT等 摘要: 信息技术的迅…

【Andriod】Appium的不同版本(Appium GUI、Appium Desktop、Appium Server )的安装教程

文章目录 前言一.Appium GUI二.Appium Desktop三.Appium Server 命令行版本1.安装node.js2.安装Appium Server 前言 Appium 安装提供两2方式:桌面版和命令行版。其中桌面版又分为 Appium GUI 和 Appium Desktop。 建议:使用Appium Desktop 一.Appium …

ubuntu安装Anaconda

下载 Anaconda 进入 Ubuntu,自己新建下载路径,输入以下命令开始下载 注意,如果不是 x86_64,需要去镜像看对应的版本(https://mirrors.bfsu.edu.cn/anaconda/archive/?CM&OA) wget https://mirrors.…

【Java 进阶篇】深入了解 Bootstrap 表格和菜单

表格和菜单是网页设计中的重要组成部分,它们用于展示数据、导航和用户交互。Bootstrap 是一个强大的前端框架,提供了丰富的表格样式和菜单组件,使开发者能够轻松创建功能丰富的网页。在本文中,我们将深入探讨 Bootstrap 中表格和菜…

火热的“出海潮”背后,你还应该知道些什么?

点击文末“阅读原文”即可报名参会 剪辑、音频 / 卷圈 运营 / SandLiu 卷圈 监制 / 姝琦 封面 / 姝琦Midjourney 产品统筹 / bobo 场地支持 / 声湃轩北京录音间 联合制作 / RTE开发者社区 过去几十年,入华的科技企业“走进来”,加速了国内企业的数…

VM虚拟机创建centos7 64位系统提示此主机不支持64位客户机操作系统,此系统无法运行

VM虚拟机创建centos7 64位系统提示此主机不支持64位客户机操作系统,此系统无法运行 背景解决方案 背景 本身系统是window10 64位专业版系统,理论上不应该不支持64位的。 解决方案 最近安装docker开启了虚拟化hyper-v,关闭即可。 打开cmd(…

Vue中的v-if和v-show指令有什么区别?

在Vue中,v-if和v-show是两个常用的指令,用于根据条件控制元素的显示和隐藏。虽然它们都可以根据条件来切换元素的可见性,但它们的实现和行为有一些区别。 1:编译时机: v-if是在编译阶段进行条件判断,如果条件为false,则在DOM中不会渲染该元素及其子元素;v-show则是在运…

MongoDB深度学习

MongoDB的简介 什么是MongoDB? MongoDB是一个基于分布式文件存储的数据库,由C语言编写。MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的,它支持的数据结构非常松散&…

解码eBPF可观测性:eBPF如何改变我们所知的观测性

让我们来看看eBPF——这项技术到底是什么,它如何影响观测性,它与现有的观测性实践有什么区别,未来可能会发生什么变化? 在过去的两年里,云原生社区一直在热烈讨论eBPF。eBPF曾是KubeCon、eBPF Days和eBPF Summit的主题…

SystemVerilog Assertions应用指南 Chapter 1.17使用参数的SVA检验器

1.17使用参数的SVA检验器 SVA允许像 Verilog那样在检验器中使用参数( parameter),这为创建可重用的属性提供了很大的灵活性。比如,两个信号间的延迟信息可以在检验器中用参数表示,那么这种检验器就可以在设计只有时序关系不同的情况中重用。例子1.2显示了个带延迟默…

【C++】一些C++11特性

C特性 1. 列表初始化1.1 {}初始化1.2 initializer_list 2. 声明2.1 auto2.2 typeid2.3 decltype2.4 nullptr 3. STL3.1 新容器3.2 新接口 4. 右值引用5. 移动构造与移动赋值6. lambda表达式7. 可变参数模板8. 包装器9. bind 1. 列表初始化 1.1 {}初始化 C11支持所有内置类型和…

Spring中自定义类型转换器

目录 一、什么是类型转换器 二、自定义类型转化器 2.1 实现Converter接口 2.2 在Spring中注册 三、自定义类型转换器中的细节 3.1 解决代码的耦合 3.2 注册标签id值必须唯一 ​3.3 Spring提供的日期转换器 一、什么是类型转换器 在Spring中类型转换器就是将配置文件中的字符串…

力扣一.链表的运用

一.合并生序链表 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例 1: 输入:l1 = [1,2,4], l2 = [1,3,4] 输出:[1,1,2,3,4,4] 输入:l1 = [], l2 = [] 输出:[] 输入:l1 = [], l2 = [0] 输出:[0]提示: 两个链表的…