![](https://img-blog.csdnimg.cn/20190927151132530.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
设计模式
文章平均质量分 95
设计模式
猎户星座。
花有重开日,人无再少年。
展开
-
访问者模式
一、前言 能力,是你前行的最大保障 年龄会不断的增长,但是什么才能让你不慌张。一定是能力,即使是在一个看似还很安稳的工作中也是一样,只有拥有能留下的本事和跳出去的能力,你才会是安稳的。而能力的提升是不断突破自己的未知也就是拓展宽度,以及在专业领域建设个人影响力也就是深度。如果日复日365天,天天搬砖,一切都没有变化的重复只能让手上增长点老茧,岁月又叹人生苦短。 站得高看的远吗? 站得高确实能看得远,也能给自己更多的追求。但,站的高了,原本看的清的东西就变得看不清了。视角和重点的不同,会让我们有很多不转载 2021-06-02 10:39:16 · 200 阅读 · 0 评论 -
模板模式
一、前言 黎明前的坚守,的住吗? 有人举过这样一个例子,先给你张北大的录取通知书,但要求你每天5点起床,12点睡觉????,刻苦学习,勤奋上进。只要你坚持三年,这张通知书就有效。如果是你,你能坚持吗?其实对于这个例子很难在我们的人生中出现,因为它目标明确,有准确的行军路线。就像你是土豪家庭,家里给你安排的明明白白一样,只要你按照这个方式走就不会有问题。可大多数时候我们并没有这样的路线,甚至不知道多久到达自己的黎明。但!谁又不渴望见到黎明呢,坚持吧! 不要轻易被洗脑 键盘侠⌨、网络喷壶,几乎当你努力坚转载 2021-06-02 10:38:33 · 282 阅读 · 0 评论 -
策略模式
一、前言 文无第一,武无第二 不同方向但同样努力的人,都有自身的价值和亮点,也都是可以互相学习的。不要太过于用自己手里的矛去攻击别人的盾????,哪怕一时争辩过了也多半可能是你被安放的角色不同。取别人之强补自己之弱,矛与盾的结合可能就是坦克。 能把复杂的知识讲的简单很重要 在学习的过程中我们看过很多资料、视频、文档等,因为现在资料视频都较多所以往往一个知识点会有多种多样的视频形式讲解。除了推广营销以外,确实有很多人的视频讲解非常优秀,例如李永乐老师的短视频课,可以在一个黑板上把那么复杂的知识,讲解的转载 2021-06-02 10:37:50 · 88 阅读 · 0 评论 -
状态模式
一、前言 写好代码三个关键点 如果把写代码想象成家里的软装,你肯定会想到家里需要有一个非常不错格局最好是南北通透的,买回来的家具最好是品牌保证质量的,之后呢是大小合适,不能摆放完了看着别扭。那么把这一过程抽象成写代码就是需要三个核心的关键点;架构(房间的格局)、命名(品牌和质量)、注释(尺寸大小说明书),只有这三个点都做好才能完成出一套赏心悦目的家。 平原走码????易放难收 上学期间你写了多少代码?上班一年你能写多少代码?回家自己学习写了多少代码?个人素养的技术栈地基都是一块一块砖码出来的,写的越转载 2021-05-31 09:35:59 · 136 阅读 · 0 评论 -
观察者模式
一、前言 知道的越多不知道的就越多 编程开发这条路上的知识是无穷无尽的,就像以前你敢说精通Java,到后来学到越来越多只想写了解Java,过了几年现在可能想说懂一点点Java。当视野和格局的扩大,会让我们越来越发现原来的看法是多么浅显,这就像站在地球看地球和站在宇宙看地球一样。但正因为胸怀和眼界的提升让我们有了更多的认识,也逐渐学会了更多的技能。虽然不知道的越来越多,但也因此给自己填充了更多的技术栈,让自己越来越强大。 拒绝学习的惰性很可怕 现在与以前不一样,资料多、途径广,在这中间夹杂的广告也非常转载 2021-05-31 09:35:09 · 306 阅读 · 0 评论 -
备忘录模式
一、前言 实现不了是研发的借口? 实现不了,有时候是功能复杂度较高难以实现,有时候是工期较短实现不完。而编码的行为又是一个不太好量化的过程,同样一个功能每个人的实现方式不一样,遇到开发问题解决问题的速度也不一样。除此之外还很不好给产品解释具体为什么要这个工期时间,这就像盖楼的图纸最终要多少水泥砂浆一样。那么这时研发会尽可能的去通过一些经验,制定流程规范、设计、开发、评审等,确定一个可以完成的时间范围,又避免风险的时间点后。再被压缩,往往会出一些矛盾点,能压缩要解释为什么之前要那么多时间,不能压缩又有各方转载 2021-05-31 09:34:32 · 89 阅读 · 0 评论 -
中介者模式
一、前言 同龄人的差距是从什么时候拉开的 同样的幼儿园、同样的小学、一样的书本、一样的课堂,有人学习好、有人学习差。不只是上学,几乎人生处处都是赛道,发令枪响起的时刻,也就把人生的差距拉开。编程开发这条路也是很长很宽,有人跑得快有人跑得慢。那么你是否想起过,这一点点的差距到遥不可及的距离,是从哪一天开始的。摸摸肚子的肉,看看远处的路,别人讲的是故事,你想起的都是事故。 思想没有产品高才写出一片的ifelse 当你承接一个需求的时候,比如;交易、订单、营销、保险等各类场景。如果你不熟悉这个场景下的业务转载 2021-05-31 09:33:54 · 130 阅读 · 0 评论 -
迭代器模式
一、前言 相信相信的力量! 从懵懂的少年,到拿起键盘,可以写一个HelloWorld。多数人在这并不会感觉有多难,也不会认为做不出来。因为这样的例子,有老师的指导、有书本的例子、有前人的经验。但随着你的开发时间越来越长,要解决更复杂的问题或者技术创新,因此在网上搜了几天几夜都没有答案,这个时候是否想过放弃,还是一直坚持不断的尝试一点点完成自己心里要的结果。往往这种没有前车之鉴需要自己解决问题的时候,可能真的会折磨到要崩溃,但你要愿意执着、愿意倔强,愿意选择相信相信的力量,就一定能解决。哪怕解决不了,也可转载 2021-05-31 09:33:08 · 138 阅读 · 0 评论 -
命令模式
一、前言 持之以恒的重要性 初学编程往往都很懵,几乎在学习的过程中会遇到各种各样的问题,哪怕别人那运行好好的代码,但你照着写完就报错。但好在你坚持住了,否则你可能看不到这篇文章。时间和成长就是相互关联着,你在哪条路上坚持走的久,就能看见那条的终点有多美,但如果你浪费了一次又一次努力的机会,那么你也会同样错过很多机遇,因为你的路换了。坚持学习、努力成长,持以恒的付出一定会有所收获。 学习方法的重要性 不会学习往往会耽误很多时间,又没有可观的收成。但不会学习有时候是因为懒造成的,尤其是学习视频、书籍资料转载 2021-05-31 09:32:28 · 106 阅读 · 0 评论 -
责任链模式
一、前言 场地和场景的重要性 射击????需要去靶场学习、滑雪????需要去雪场体验、开车????需要能上路实践,而编程开发除了能完成产品的功能流程,还需要保证系统的可靠性能。就像你能听到的一些系统监控指标;QPS、TPS、TP99、TP999、可用率、响应时长等等,而这些指标的总和评估就是一个系统的健康度。但如果你几乎没有听到这样的技术术语,也没接触过类似高并发场景,那么就很像驾驶证的科目1考了100分,但不能上路。没有这样的技术场景给你训练,让你不断的体会系统的脾气秉性,即便你有再多的想法都没法实现转载 2021-05-31 09:31:25 · 91 阅读 · 0 评论 -
代理模式
一、前言 难以跨越的瓶颈期,把你拿捏滴死死的! 编程开发学习过程中遇到的瓶颈期,往往是由于看不到前进的方向。这个时候你特别希望能有人告诉你,你还欠缺些什么朝着哪个方向努力。而导致这一问题的主要原因是由于日常的业务开发太过于复制过去,日复一日的重复。没有太多的挑战,也没参与过较大体量的业务场景,除了这些开发场景因素外,还有缺少组内的技术氛围和技术分享,没有人做传播和布道者,也缺少自己对各项技术学习的热情,从而导致一直游荡在瓶颈之下,难以提升。 小公司与大公司,选择哪个? 刨除掉薪资以外你会选择什么,是转载 2021-05-31 09:28:10 · 87 阅读 · 0 评论 -
享元模式
一、前言 程序员????????的上下文是什么? 很多时候一大部分编程开发的人员都只是关注于功能的实现,只要自己把这部分需求写完就可以了,有点像被动的交作业。这样的问题一方面是由于很多新人还不了解程序员的职业发展,还有一部分是对于编程开发只是工作并非兴趣。但在程序员的发展来看,如果不能很好的处理上文(产品),下文(测试),在这样不能很好的了解业务和产品发展,也不能编写出很有体系结构的代码,日久天长,1到3年、3到5年,就很难跨越一个个技术成长的分水岭。 拥有接受和学习新知识的能力 你是否有感受过转载 2021-05-31 09:27:12 · 86 阅读 · 0 评论 -
外观模式
一、前言 你感受到的容易,一定有人为你承担不容易 这句话更像是描述生活的,许许多多的磕磕绊绊总有人为你提供躲雨的屋檐和避风的港湾。其实编程开发的团队中也一样有人只负责CRUD中的简单调用,去使用团队中高级程序员开发出来的核心服务和接口。这样的编程开发对于初期刚进入程序员行业的小伙伴来说锻炼锻炼还是不错的,但随着开发的日子越来越久一直做这样的事情就很难得到成长,也想努力的去做一些更有难度的承担,以此来增强个人的技术能力。 没有最好的编程语言,语言只是工具 刀枪棍棒、斧钺钩叉、包子油条、盒子麻花,是语言转载 2021-05-28 14:48:01 · 76 阅读 · 0 评论 -
装饰器模式
一、前言 对于代码你有编程感觉吗 很多人写代码往往是没有编程感觉的,也就是除了可以把功能按照固定的流程编写出流水式的代码外,很难去思考整套功能服务的扩展性和可维护性。尤其是在一些较大型的功能搭建上,比较缺失一些驾驭能力,从而导致最终的代码相对来说不能做到尽善尽美。 江洋大盗与江洋大偷 两个本想描述一样的意思的词,只因一字只差就让人觉得一个是好牛,一个好搞笑。往往我们去开发编程写代码时也经常将一些不恰当的用法用于业务需求实现中,但却不能意识到。一方面是由于编码不多缺少较大型项目的实践,另一方面是不思进转载 2021-05-28 14:45:44 · 91 阅读 · 0 评论 -
组合模式
一、前言 小朋友才做选择题,成年人我都要 头几年只要群里一问我该学哪个开发语言,哪个语言最好。群里肯定聊的特别火热,有人支持PHP、有人喊号Java、也有C++和C#。但这几年开始好像大家并不会真的刀枪棍棒、斧钺钩叉般讨论了,大多数时候都是开玩笑的闹一闹。于此同时在整体的互联网开发中很多时候是一些开发语言公用的,共同打造整体的生态圈。而大家选择的方式也是更偏向于不同领域下选择适合的架构,而不是一味地追求某个语言。这可以给很多初学编程的新人一些提议,不要刻意的觉得某个语言好,某个语言不好,只是在适合的场景转载 2021-05-28 14:37:06 · 246 阅读 · 0 评论 -
桥接模式
一、前言 为什么你的代码那么多ifelse 同类的业务、同样的功能,怎么就你能写出来那么多ifelse。很多时候一些刚刚从校园进入企业的萌新,或者一部分从小公司跳槽到大企业的程序员,初次承接业务需求的时候,往往编码还不成熟,经常一杆到底的写需求。初次实现确实很快,但是后期维护和扩展就十分痛苦。因为一段代码的可读性阅读他后期的维护成本也就越高。 设计模式是可以帮助你改善代码 很多时候你写出来的ifelse都是没有考虑使用设计模式优化,就像;同类服务的不同接口适配包装、同类物料不同组合的建造、多种奖品组转载 2021-05-28 14:34:45 · 91 阅读 · 0 评论 -
适配器模式
一、前言 擦屁屁纸80%的面积都是保护手的! 工作到3年左右很大一部分程序员都想提升自己的技术栈,开始尝试去阅读一些源码,例如Spring、Mybaits、Dubbo等,但读着读着发现越来越难懂,一会从这过来一会跑到那去。甚至怀疑自己技术太差,慢慢也就不愿意再触碰这部分知识。 而这主要的原因是一个框架随着时间的发展,它的复杂程度是越来越高的,从最开始只有一个非常核心的点到最后开枝散叶。这就像你自己开发的业务代码或者某个组件一样,最开始的那部分核心代码也许只能占到20%,而其他大部分代码都是为了保证核心转载 2021-05-28 14:32:46 · 167 阅读 · 0 评论 -
单例模式
一、前言 5个创建型模式的最后一个 在设计模式中按照不同的处理方式共包含三大类;创建型模式、结构型模式和行为模式,其中创建型模式目前已经介绍了其中的四个;工厂方法模式、抽象工厂模式、生成器模式和原型模式,除此之外还有最后一个单例模式。 掌握了的知识才是自己的 在本次编写的重学 Java 设计模式的编写中尽可能多的用各种场景案例还介绍设计的使用,包括我们已经使用过的场景;各种类型奖品发放、多套Redis缓存集群升级、装修公司报价清单和百份考卷题目与答案乱序,通过这些场景案例的实践感受设计模式的思想。但转载 2021-05-28 14:30:03 · 65 阅读 · 0 评论 -
原型模式
一、前言 老板你加钱我的代码能飞 程序员这份工作里有两种人;一类是热爱喜欢的、一类是仅当成工作的。而喜欢代码编程的这部分人会极其主动学习去丰富自己的羽翼,也非常喜欢对技术探索力求将学到的知识赋能到平时的业务需求开发中。对于这部分小伙伴来说上班写代码还能赚钱真的是幸福! 怎么成为喜欢编码都那部分人 无论做哪行那业你都喜欢,往往来自从中持续不断都获取成就感。就开发编程而言因为你的一行代码影响到了千千万万的人、因为你的一行代码整个系统更加稳定、因为你的一行代码扛过了所有秒杀等等,这样一行行的代码都是你日积转载 2021-05-28 14:28:20 · 136 阅读 · 0 评论 -
建造者模式
一、前言 乱码七糟 [luàn qī bā zāo],我时常怀疑这个成语是来形容程序猿的! 无论承接什么样的需求,是不是身边总有那么几个人代码写的烂,但是却时常有测试小姐姐过来聊天(求改bug)、有产品小伙伴送吃的(求写需求)、有业务小妹妹陪着改代码(求上线),直至领导都认为他的工作很重要,而在旁边的你只能蹭点吃的。 那你说,CRUD的代码还想让我怎么样? 这样的小伙伴,可能把代码写的很直接,ifelse多用一点,满足于先临时支持一下,想着这也没什么的。而且这样的业务需求要的急又都是增删改查的内容,转载 2021-05-28 14:24:58 · 112 阅读 · 0 评论 -
抽象工厂模式
一、前言 代码一把梭,兄弟来背锅。 大部分做开发的小伙伴初心都希望把代码写好,除了把编程当作工作以外他们还是具备工匠精神的从业者。但很多时候又很难让你把初心坚持下去,就像;接了个烂手的项目、产品功能要的急、个人能力不足,等等原因导致工程代码臃肿不堪,线上频出事故,最终离职走人。 看了很多书、学了很多知识,多线程能玩出花,可最后我还是写不好代码! 这就有点像家里装修完了买物件,我几十万的实木沙发,怎么放这里就不好看。同样代码写的不好并不一定是基础技术不足,也不一定是产品要得急 怎么实现我不管明天上线。转载 2021-05-28 14:14:00 · 365 阅读 · 0 评论 -
工厂方法模式
一、前言 好看的代码千篇一律,恶心的程序升职加薪。 该说不说几乎是程序员就都知道或者了解设计模式,但大部分小伙伴写代码总是习惯于一把梭。无论多少业务逻辑就一个类几千行,这样的开发也可以归纳为三步;定义属性、创建方法、调用展示,Done!只不过开发一时爽,重构火葬场。 好的代码不只为了完成现有功能,也会考虑后续扩展。在结构设计上松耦合易读易扩展,在领域实现上高内聚不对外暴漏实现细节不被外部干扰。而这就有点像家里三居(MVC)室、四居(DDD)室的装修,你不会允许几十万的房子把走线水管裸漏在外面,也不会允转载 2021-05-28 13:49:55 · 190 阅读 · 0 评论