随笔分类 -  GoF设计模式

摘要:一、什么是迭代器模式 迭代器这个词在Java中出现过,即Java中使用Iterator迭代器对集合进行遍历,但迭代器模式算是一个没落的模式,基本上没人会单独写一个迭代器,除非是产品性质的开发。 迭代器模式(Iterator),提供一种方法顺序访问一个聚合对象中各个元素,而又不暴露该对象的内部表示。U 阅读全文
posted @ 2019-06-14 17:05 JAdam 阅读(3077) 评论(1) 推荐(0) 编辑
摘要:一、什么是备忘录模式 备忘录这个词汇大家应该都不陌生,我就经常使用备忘录来记录一些比较重要的或者容易遗忘的信息,与之相关的最常见的应用有许多,比如游戏存档,我们玩游戏的时候肯定有存档功能,旨在下一次登录游戏时可以从上次退出的地方继续游戏,或者对复活点进行存档,如果挂掉了则可以读取复活点的存档信息重新 阅读全文
posted @ 2019-06-13 17:52 JAdam 阅读(6921) 评论(3) 推荐(2) 编辑
摘要:一、什么是策略模式 策略这个词应该怎么理解,打个比方说,我们出门的时候会选择不同的出行方式,比如骑自行车、坐公交、坐火车、坐飞机、坐火箭等等,这些出行方式,每一种都是一个策略。 再比如我们去逛商场,商场现在正在搞活动,有打折的、有满减的、有返利的等等,其实不管商场如何进行促销,说到底都是一些算法,这 阅读全文
posted @ 2019-06-12 17:39 JAdam 阅读(103179) 评论(3) 推荐(19) 编辑
摘要:一、什么是访问者模式 访问者模式是一个相对比较简单,但结构又稍显复杂的模式,它讲的是表示一个作用于某对象结构中的各元素的操作,它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。例如,你在朋友家做客,你是访问者,朋友接收你的访问,你通过朋友的描述,然后对朋友的描述做出一个判断,这就是访问 阅读全文
posted @ 2019-06-03 16:59 JAdam 阅读(14395) 评论(0) 推荐(1) 编辑
摘要:一、什么是中介者模式 中介这个词并不陌生,就是房屋中介的那个“中介”,就是中间人的意思。比如MVC模式,C(Controller控制器)是M(Model模型)和V(View视图)的中介者,在前后端交互时起到了中间人的作用。 中介者模式(Mediator),用一个中介对象来封装一系列的对象交互。中介者 阅读全文
posted @ 2019-06-01 16:17 JAdam 阅读(8799) 评论(2) 推荐(2) 编辑
摘要:一、什么是解释器模式 解释器这个名词想必大家都不会陌生,比如编译原理中,一个算术表达式通过词法分析器形成词法单元,而后这些词法单元再通过语法分析器构建语法分析树,最终形成一颗抽象的语法分析树。诸如此类的例子也有很多,比如编译器、正则表达式等等。 如果一种特定类型的问题发生的频率足够高,那么可能就值得 阅读全文
posted @ 2019-05-28 17:30 JAdam 阅读(15168) 评论(0) 推荐(2) 编辑
摘要:一、什么是职责链模式 从文字角度出发,我们可以先将关注点放在“链”字上,很容易联想到链式结构,举个生活中常见的例子,击鼓传花游戏就是一个很典型的链式结构,所有人形成一条链,相互传递。而从另一个角度说,职责链就是所谓的多级结构,比如去医院开具病假条,普通医生只能开一天的证明,如果需要更多时常,则需将开 阅读全文
posted @ 2019-05-27 18:08 JAdam 阅读(8042) 评论(1) 推荐(2) 编辑
摘要:一、什么是状态模式 状态这个词汇我们并不陌生,在日常生活中,不同时间就有不同的状态,早上起来精神饱满,中文想睡觉,下午又渐渐恢复,晚上可能精神更旺也可能耗费体力只想睡觉,这一天中就对应着不同的状态。或者对软件开发人员更形象的描述可能是UML的状态图(即用于描述一个实体基于事件反应的动态行为,显示了该 阅读全文
posted @ 2019-05-26 18:32 JAdam 阅读(13451) 评论(3) 推荐(0) 编辑
摘要:一、什么是命令模式 在说命令模式前我们先来说一个小例子。很多人都有吃夜市的经历,对于那些推小车的摊位,通常只有老板一个人,既负责制作也负责收钱,我要两串烤串多放辣,旁边的人要了三串烤面筋不要辣,过了一会儿又来人要烤蔬菜……,当人多的时候记忆力不好的老板肯定就不知道谁要的啥、交没交钱了;而去有店铺的烤 阅读全文
posted @ 2019-05-25 17:21 JAdam 阅读(2498) 评论(2) 推荐(0) 编辑
摘要:一、什么是模板方法模式 所谓模板方法模式,其实很简单,可以从模板的角度考虑,就是一个对模板的应用,就好比老师出试卷,每个人的试卷都是一样的,即都是从老师的原版试卷复印来的,这个原版试卷就是一个模板,可每个人写在试卷上的答案都是不一样的,这就是模板方法模式,是不是很好理解。它的主要用途在于将不变的行为 阅读全文
posted @ 2019-05-24 17:05 JAdam 阅读(9685) 评论(0) 推荐(2) 编辑
摘要:一、什么是观察者模式 观察者一般可以看做是第三者,比如在学校上自习的时候,大家肯定都有过交头接耳、各种玩耍的经历,这时总会有一个“放风”的小伙伴,当老师即将出现时及时“通知”大家老师来了。再比如,拍卖会的时候,大家相互叫价,拍卖师会观察最高标价,然后通知给其它竞价者竞价,这就是一个观察者模式。 对于 阅读全文
posted @ 2019-05-23 18:24 JAdam 阅读(69746) 评论(2) 推荐(14) 编辑
摘要:之前说了代理模式,即为其他对象提供一种代理以控制对这个对象的访问,详情见《简说设计模式——代理模式》,而代理模式常见的实现方式为静态代理及动态代理。 一、静态代理 所谓静态代理类是指:由程序员创建或由特定工具自动生成源代码,再对其进行编译。在程序运行之前,代理类的.class文件就已经存在了。UML 阅读全文
posted @ 2019-05-22 17:50 JAdam 阅读(2198) 评论(0) 推荐(2) 编辑
摘要:一、什么是代理模式 关于代理模式,我们听到的见到的最多的可能就是静态代理、动态代理之类的,当然还有大家都知道的Spring Aop,这里我们先不谈这些个代理,先说个简单的例子。游戏代练应该都听说过,许多人肯定也找过代练,曾经DNF、LOL、COC等等游戏的代练很多,当然现在各类游戏层出不穷,也都有各 阅读全文
posted @ 2018-05-28 20:15 JAdam 阅读(6342) 评论(5) 推荐(3) 编辑
摘要:一、什么是享元模式 说到享元模式,第一个想到的应该就是池技术了,String常量池、数据库连接池、缓冲池等等都是享元模式的应用,所以说享元模式是池技术的重要实现方式。 比如我们每次创建字符串对象时,都需要创建一个新的字符串对象的话,内存开销会很大,所以如果第一次创建了字符串对象“adam“,下次再创 阅读全文
posted @ 2018-05-22 00:31 JAdam 阅读(53046) 评论(20) 推荐(6) 编辑
摘要:一、什么是外观模式 有些人可能炒过股票,但其实大部分人都不太懂,这种没有足够了解证券知识的情况下做股票是很容易亏钱的,刚开始炒股肯定都会想,如果有个懂行的帮帮手就好,其实基金就是个好帮手,支付宝里就有许多的基金,它将投资者分散的资金集中起来,交由专业的经理人进行管理,投资于股票、债券、外汇等领域,而 阅读全文
posted @ 2018-05-16 22:33 JAdam 阅读(17679) 评论(0) 推荐(7) 编辑
摘要:一、什么是装饰模式 还记得我的一个长辈曾经买了一部手机,买的时候还好好的新新的,刚拿到家就坏了,怎么回事呢?其实就是一个假手机,把一个已经报废的旧机子改了改,外面加了个新壳子罢了,这就是一个装饰模式,在原有的基础上加了些东西。 装饰模式(Decorator),动态地给一个对象添加一些额外的职责,就增 阅读全文
posted @ 2018-05-14 15:35 JAdam 阅读(32043) 评论(4) 推荐(6) 编辑
摘要:一、什么是组合模式 前面我们讲过Swing(Java进阶篇(六)——Swing程序设计(上)),在Swing中,容器Container和组件如Button、JLabel等等之间的关系就是组合关系,一个容器中有多个组件,组合模式更形象的说就是一棵树,描述的时部分-整体的关系。 组合模式(Composi 阅读全文
posted @ 2018-05-11 15:13 JAdam 阅读(14668) 评论(0) 推荐(3) 编辑
摘要:一、什么是桥接模式 桥接模式,又叫桥梁模式,顾名思义,就是有座“桥”,那这座桥是什么呢?就是一条聚合线(下方UML图),比如我们下面会举的例子,手机有手机品牌和手机游戏等等,每个手机品牌都有多款游戏,那是不是二者之间就是聚合关系了,这是合成/聚合复用原则的体现,当我们发现类有多层继承时就可以考虑使用 阅读全文
posted @ 2018-05-09 21:56 JAdam 阅读(19530) 评论(2) 推荐(5) 编辑
摘要:一、什么是适配器模式 适配器这个词我们应该很熟悉,天天都在使用,手机充电时,电源线头头就叫电源适配器,干什么用的呢?把220V电压转换为手机充电时使用的电压,那适配器模式是不是很好理解了,下面看一下定义。 适配器模式(Adapter),将一个类的接口转换成客户希望的另外一个接口。使原本由于接口不兼容 阅读全文
posted @ 2018-05-07 23:21 JAdam 阅读(3345) 评论(0) 推荐(3) 编辑
摘要:一、什么是原型模式 还记不记得初高中学生物的时候,细胞分裂时怎么实现的,一个细胞无论是细胞核分裂还是细胞质分裂,是不是都是通过克隆自身实现的。或者说我们去复印资料的时候,是不是直接对原本的资料进行复印,得到了一个一模一样的资料,这些都可以说是原型模式,下面看一下定义。 原型模式(Prototype) 阅读全文
posted @ 2018-05-02 18:51 JAdam 阅读(1982) 评论(0) 推荐(1) 编辑