[学习笔记]设计模式之Composite】的更多相关文章

为方便读者,本文已添加至索引: 设计模式 学习笔记索引 写在前面 在Composite(组合)模式中,用户可以使用多个简单的组件以形成较大的组件,而这些组件还可能进一步组合成更大的.它重要的特性是能够让用户一致地对待单个对象和组合对象.不知大家是否还记得女巫格琳达(见笔记Facade模式),她的小屋经营得很顺利,给小伙伴们的生活带来了极大地便利.今天,她又推出了一项全新的销售项目,那就是“私人订制自主行动型魔法小人偶-I”.乍看之下是个稻草人模样,但其实客人们能够通过自己订制小人偶的不同部件,组…
为方便读者,本文已添加至索引: 设计模式 学习笔记索引 写在前面 在上篇Chain of Responsibility(职责链)模式笔记中,我们学习了一种行为型设计模式.今天,我们继续这一主题,来学习下Command(命令)模式.可以看到职责链模式是对处理请求的对象(职能者)进行了建模,而Command模式的最大不同之处就在于,它是对请求本身进行建模的.这一点从它的名字就可以看出.所以它又有别名叫:Action(动作).Transaction(事物)模式. 老规矩,我们首先直观地去理解什么是命令…
写在前面 为方便读者,本文已添加至索引: 设计模式 学习笔记索引 在上篇笔记Builder设计模式中,时の魔导士祭出了自己的WorldCreator.尽管它因此能创造出一个有山有树有房子的世界,但是白雪公主的生活似乎并不太快乐.啊,她当然需要填饱肚子.“来点可口的意式甜点,还是独特的法式面包呢?”魔导士心想.顺便说一下,白雪公主是德国人.“那就德式烤肠怎么样?……总之,我们需要点食品加工厂~尝尝来自世界各地的美味吧!” 来自不同地域的食品加工厂各自有着独特的工艺水平,生产出来的食物口感味道上都各…
写在前面 为方便读者,本文已添加至索引: 设计模式 学习笔记索引 作为一个新入职的魔导士呢,哦不,是程序员,我以为并没有太多机会去设计项目的软件架构.但是,工作一段时间之后,自己渐渐意识到,哪怕是自己要去做的小feature,也是需要去好好设计.我就应该做好它的架构师.看过一些牛人的文章后,总算意识到自己应该好好学习下设计模式.尽管并不是为了把设计模式作为教条式的方案套用到现实的工作中去,起码我也要做到心中有佛吧,...是心中有数,再在日后工作中积累经验,达到融汇贯通的境地.设计模式是前人总结出…
写在前面 为方便读者,本文已添加至索引: 设计模式 学习笔记索引 Adapter(适配器)模式主要解决接口不匹配的问题.为此,让我们要回到最初Builder模式创建平行世界时,白雪公主和小霍比特人的谜之相遇.在这个世界里,我们暂时有见到两个种族Human和Hobbit.种族不同所产生的最大区别是什么?当然个头是一部分,也仅仅是一部分而已.毕竟Human里也有怎么长都才那么高的吧:P.这里要说的区别是:他们的语言不通.是的,白雪公主一开始根本就听不懂小霍比特人在说什么. 在这个平行世界中,所有的H…
写在前面 为方便读者,本文已添加至索引: 设计模式 学习笔记索引 “魔镜啊魔镜,谁是这个世界上最美丽的人?”月光中,一个低沉的声音回荡在女王的卧室.“是美丽的白雪公主,她正和小霍比特人们幸福快乐地生活在森林之中.”魔镜答道.“可恶!我才应该是最美的人,我要除掉你,白雪公主!”女巫开始用她的水晶球施展起诡异的妖术. 原本安宁的森林最近特别的闹腾,动物们个个都焦躁不安.小霍比特人之一的theWoodcutter(樵夫)在去伐木的路上发现了一头野熊的尸体.这头庞然大物的伤口上除了血淋淋的爪痕,竟然混杂…
写在前面 为方便读者,本文已添加至索引: 设计模式 学习笔记索引 在笔记Builder模式中,我们曾见到了最初用于创建平行世界的函数createWorld,并且它是Mage类的成员函数(毕竟是专属于魔导士的强大咒语嘛).然而在上篇笔记Singleton模式中,时の魔导士组建了一个极为强大的WorldMgr议会来代替他维持世界.“如果他们甚至连改造地形的能力都没有的话,会让人很苦恼呢……”魔导士心想,“或许我可以给他们提供一套地图编辑器……或者说世界改造器,就像暴雪那帮家伙的星际争霸.”对于如何设…
为方便读者,本文已添加至索引: 设计模式 学习笔记索引 写在前面 最近时间比较紧,所以发文的速度相对较慢了.但是看到园子里有很多朋友对设计模式感兴趣,我感觉很高兴,能够和大家一起学习这些知识. 之前的文章中,我们已经介绍了对象创建型和对象结构型的设计模式(请参见索引).从本篇开始,我们将接触的是对象行为型设计模式.所谓行为模式涉及到算法和对象间职责的分配.在对象和类的模式之外,还涉及了它们之间的通信模式.比如我们今次的主题:Chain of Responsibility(职责链)模式,它就描述了…
为方便读者,本文已添加至索引: 设计模式 学习笔记索引 写在前面 “魔镜啊魔镜,谁是这个世界上最美丽的人?” 每到晚上,女王都会问魔镜相同的问题(见Decorator模式).这是她还曾身为女巫时留下的习惯.尽管要说起这个内心邪恶的女巫,将会有一大堆故事,但我们今天要讨论的主角,却是这面神奇的镜子.关于魔镜的来历,谁都不是很清楚.就连这个世界的创造者魔导士(见Builder模式)也对它的存在感到好奇.魔镜能够回应主人的诉求,回答主人所提出的问题,并透过镜子来提示答案相关的信息.我们可以通过时の魔导…
为方便读者,本文已添加至索引: 设计模式 学习笔记索引 写在前面 Flyweight(享元)模式运用共享技术,可以有效地支持大量细粒度的对象.今天我们会去参观小霍比特人们的酿酒工坊……等等,不是享元模式吗?那好吧,我们推迟到示例一节中前往参观. 我们在做面向对象的设计时,常常希望能用对象来表示某个具体的事物,比如一个红富士苹果或是一辆凯迪拉克跑车.当我们把这种思维带到一些程序设计任务中去时,可能就会遭遇到处理存储开销和程序本身灵活性的一个平衡问题.例如,我们在设计一个游戏,主人公走到一片苹果园,…