![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
keli_Jun
在到达胜利之前,无法回头
展开
-
设计模式(责任链)
曾经有这么一些零散的功能节点,他们各自承担各自的义务,分工明确,各司其职。为了更高效,更完整地解决客户的问题,他们发扬团队精神,互相串联起来形成一个有序的责任传递链表,于是责任链模式诞生了。当然,它的结构也不一定非得是链表,甚至可以是树型分叉结构,这要根据业务场景看怎样去灵活运用,但其核心意义是为了处理某种连续的流程,并确保业务一定能走到相应的责任节点上并得到相应的处理。 说到这里想必大家已经想到了工作流吧?对,企事业单位中通常为了完成某项日常任务,通常要制定一些工作流程,按步骤拆分,并组织好各个环节转载 2020-07-17 15:02:32 · 317 阅读 · 0 评论 -
设计模式(备忘录)
备忘录,备份曾经发生过的历史记录,以防忘记,之后便可以轻松回溯过往。想必我们曾经都干过很多蠢事导致糟糕的结果,当后悔莫及的时候已经是覆水难收了,只可惜这世界上没有后悔药,事后我们能做的只能去弥补过失,总结经验。除非穿越时空,时光倒流,利用爱因斯坦狭义相对论,超越光速回到过去,破镜重圆。 然而世界是残酷的,人类至今最快的载人交通工具连达到光速的万分之一都显得遥不可及,更别说超越了。光速,宇宙间永远无法打破的时空屏障,它像是上帝定义的常量C,将时间牢牢地套死在坐标轴上,自创世宇宙大爆炸开始就让它不断流逝,转载 2020-07-17 14:58:06 · 163 阅读 · 0 评论 -
设计模式(迭代器)
方法迭代,代的更迭,从初代到末代的遍历,指对某类集合中的每个元素按顺序取出的行为。举个例子,通常我们读小说是从前往后翻,一页接着一页地读,这样我们才可以了解一个连续完整的故事,那这就需要我们顺序地迭代整本书的每一页内容。 相信大家都用过集合类吧,最常用的比如List,Set,Map以及各种各样不同数据表示实现,总之是把某一批类似的元素按某种数据结构集合起来作为一个整体来引用,不至于元素丢的到处都是难以维护,当要用到每个元素的时候,我们需要将它们一个个的取出来,但是对不同的数据类型访问方式各有不同,于是转载 2020-07-15 14:35:22 · 152 阅读 · 0 评论 -
设计模式(组合)
组合,由于事物与事物之间存在某种关系,进而组织起来并形成某种结构并且可以共同发挥作用。组合模式所应用的就是树形结构以表达“部分/整体”的层次结构。相信我们都知道“二叉树”结构吧,根部分出来两个枝杈(左节点,右节点),每个枝杈上又可以继续分叉,直到末端的叶子为止。 当然,二叉树算是最简单的树了,其实大自然中更多的是多叉树结构,我们来观察一些蕨类植物,宏观上看貌似这只是一片简单的叶子。 然而,一花一世界,一叶一菩提。仔细观察我们会发现叶子上又有小的枝叶,一个小的枝叶上又有更小的枝叶。我们不管从宏观还转载 2020-07-15 14:20:27 · 219 阅读 · 0 评论 -
设计模式(中介)
中介,作用于多个事物之间充当交互沟通的媒介。我们的生活中有各种各样的媒介,比如一些传统媒体,书刊杂志,报纸,把信息传递给读者。再比如利用电子信息技术的互联网,作为一种新媒体,不单可以更高效地把信息传递给用户,而且可以反向地获得用户反馈评论,用户与用户之间亦可以进行沟通,这种全终端双向互通是传统媒体所不能及的。 除此之外,再如婚介所、房产中介、交换机组网、现代电子商务、C2C购物平台、手机、即时通软件等等,这些都与我们的生活息息相关,离开它们我们将举步维艰。其实不管是任何中介,其本质都是相同的,都是充当转载 2020-07-14 14:34:40 · 228 阅读 · 0 评论 -
设计模式(装饰)
装饰,在某物件基础上加以修饰,装点,使得原本的朴素变得华丽,达到化腐朽为神奇的效果。比如我们从开发商买来的毛坯房,必然要进行室内装潢这么一项工程,什么简约风啊,北欧风啊,地中海,美式中式等等,当然萝卜青菜各有所爱,每个人装出的房子都各有差异,但不管何种风格,这都是对原本毛坯房的装饰,留给业主按照自己的喜好进行二次加工,这也是为什么有时候毛坯二手房比装修过的要好卖,有成品就一定得有半成品,这样才能把更多的选择留给用户,使得装饰成为可能 人靠衣装马靠鞍,当然不止是装修有这么神奇的效果,对于女生化妆来说我们转载 2020-07-14 14:28:48 · 175 阅读 · 0 评论 -
设计模式(门面)
开门见山,门,建筑物的入口,面,脸也。门面(Facade),通常指店铺的门头外表部分,当然一定要临街才是好的商铺,在人流量大的地方营造更好的视觉冲击,这样会有更多等等机会暴露给潜在顾客,否则只能是靠“酒香不怕巷子深”,靠味道来吸引人了。 当然除了光鲜亮丽的外表,更重要的是门店提供的服务了。就拿餐饮来举例吧,如果没有这些门店我们都怎样吃饭呢?我们自己做又不会,算了还是找女友下厨吧。很简单分三步走,首先找菜贩买菜,其次女友下厨,最后吃完洗碗,打完收工代码如下。 public class VegVend转载 2020-07-13 14:35:56 · 266 阅读 · 0 评论 -
设计模式(模板方法)
面向对象,是对事物属性与行为的封装,方法,指的就是行为。模板方法,显而易见是说某个方法充当了模板的作用,其充分利用了抽象类虚实结合的特性,虚部抽象预留,实部固定延续,以达到将某种固有行为延续至子类的目的。反观接口,则达不到这种目的。要搞明白模板方法,首先我们从接口与抽象类的区别切入,这也是面试官经常会问到的问题。 汽车上的接口最常见的就是这几个了,点烟器,USB,AUX等等,很明显这些都是接口,它们都预留了某种标准,暴露在系统外部,并与外设对接。就拿点烟器接口来说吧,它原本是专门用于给点烟器供电的,后转载 2020-07-13 14:24:48 · 129 阅读 · 0 评论 -
设计模式(状态)
状态State,指某事物所处的状况或形态,比如水的三态,零下会变成固态冰,常温会是液态水,100℃会蒸发成气态的水蒸气。 在这个地球生态系统中,水的总量并不会增加,也不会减少,只是随着温度的变化其分子间发生了稀松紧密的变化罢了,于是便有了不同的行为,比如流动、凝固、或是蒸腾,但对于其本质H2O分子对象并没有任何变化,变化的,只是其形态。 当然,事物的状态都是不同的,有的多有的少。物质基本三态,人的精神状态更是非常复杂多变的,喜怒哀乐,五味杂陈。更有趣的是,对于某些患有严重的精神分裂的病人来说,其精神转载 2020-07-11 14:37:45 · 254 阅读 · 0 评论 -
设计模式(策略)
策略,Strategy,古时也称“计”,为了达成某个目标的方案,目标不同,方案也随之更改。例如特工执行任务时总要准备好几套方案以应对突如其来的变化,A计划实施过程中情况突变导致预案无法继续实施,则马上更换为B计划,正所谓计划不如变化快,提前策划固然非常重要,而随机应变更是不可或缺,只有保证这种可变的灵活性才能立于不败之地。世界永远都在变,唯一不变的就是变本身。 作为有思想的码农,我们当然也不能把程序写死了,一个设计优秀的系统,绝不是把现有类的代码改来改去,而一定是扩展类并接入系统,这样马上就能适应不同转载 2020-07-11 14:28:20 · 180 阅读 · 0 评论 -
设计模式(适配器)
我们这个世界,充满着千奇百怪的对象,更有趣的是对象与对象间是存在着互动,沟通,这样世界才变得美妙。那到底是怎样互动呢?靠什么才能互动呢?是的,接口。比如你和朋友一起喝茶聊天,我们暂且不管声带,耳膜这些功能性对象, 那你们之间聊天的接口就是嘴巴耳朵了,嘴巴发送声波,耳朵接收声波,接口,一定是输入或输出的终端。 好了,这是语言沟通,那如果是行为沟通呢,比如在一个夜黑风高的晚上,你跟你的另一半偷偷钻进了高粱地里并做了一些丧尽天良的事情,到底是通过什么接口互动呢?好吧,这个难题留个你了,好好研究一下留言给..转载 2020-07-10 14:49:43 · 197 阅读 · 0 评论 -
设计模式(单例)
之前我们讲过面向对象以及封装、继承、多态三大特性,底子打好了那我们就把设计模式一个个拆开来看看到底都是神些什么鬼,我们先从简单的单例说起吧。单例,顾名思义,整个系统其实就只有一个实例存在,不能再多,否则就不叫单例。那我们把整个宇宙看做是一个庞大的系统,这宇宙里有各种对象存在,人啊,动物啊,植物啊不胜枚举,这些都是实例,丰富多彩的世界是美好的。然而,持续几千年的战争给世界带来了巨大灾难,尤其是宗教战争最为残忍,各个信仰间存在极大的世界观价值观冲突。 单印度一个国家就有几百个神,人们各信各的,风俗各异,各转载 2020-07-10 14:39:28 · 149 阅读 · 0 评论 -
设计模式(原型)
原型(Prototype)是什么意思?工业生产中通常是指在量产之前研发出的概念实现,如果可行性满足即可参照原型进行量产。有人说了,那不就是印章?其实这并不怎么贴切,印章并不是最终实例,我更愿意称其为“类”! 呃……僵尸脸花泽类经世名言:想哭的时候就道理,这样眼泪就不会流出来了。(尼玛,都流脑子里了吧!) 言归正传,大家一定见过这种印章吧,就是皮带轮可以转动,可随意调整成自己需要的文字,其实跟我们的四大发明活字印刷同出一辙,我们填完表格签好字,行政人员拿这个往上一盖,一个日期便出现在落款出。 ..转载 2020-07-09 15:08:09 · 234 阅读 · 0 评论 -
设计模式(初探)
有物混成,先天地生。寂兮寥兮,独立而不改,周行而不殆,可以为天地母。吾不知其名,字之曰道,强为之名曰大。大曰逝,逝曰远,远曰反。 道是什么?道可道,非常道。道不明,说不尽的才算是道,它是自然法则的终极抽象。但至少在某一方面,它是各种事物如何组织在一起以及进行沟通互动的原始规律。而在软件设计中,各个模块之间怎样组织通信成为一个优雅健壮的整体,以便保证良好的可重用性和扩展性,这对于设计人员至关重要,于是有人将这些组装模式总结了出来,成为一种道,设计模式之道。 首先我们得搞清楚点面向对象的概念,面向对..转载 2020-07-09 14:44:39 · 279 阅读 · 0 评论