Design Patterns
imfzp
这个作者很懒,什么都没留下…
展开
-
《Head First Design Patterns》笔记一:策略模式(Strategy Pattern)
开篇 好书大多是枯燥的,特别是设计模式方面的书籍,但有没有内容丰富且语言优美吸引人的书呢?有《head first design patterns》就是这样的一本书,这是多么好的书啊,我对自己说:“不要抱怨没有时间啦,把抱原创 2009-01-21 14:56:00 · 2170 阅读 · 0 评论 -
《Head First Design Patterns》笔记十三:代理模式(Proxy Pattern)
概念 代理模式很好理解的一个模式,同时也是应用十分广泛的一个模式。比如常见的远程网络调用。远程客户端调用远程服务端机器的应用。给客户的感觉好像就是在本机上操作一样,这其中就是代理在做工。 我们先看uml图 客户直接调用代理,代理再通过中间层实现对真实事务的调用。使用接口的目的是为了更加透明的操作对象。 实例 我们来建一个原创 2009-08-26 11:27:00 · 1266 阅读 · 0 评论 -
《Head First Design Patterns》笔记九:模版模式(Template Method Pattern)
概述 模版的应用,可谓是遍地都是.我们每天上着似曾相识的论坛,天天重复按着模版套写文档.天上飞的,地上跑的,大多是各种模版套出来的.区别只是细微地方不一样,可以说模版就是让我们最大化的重用现有已存在的事物.这也许就是模版模式有人称之为最重要的模式(之一)的原因.设计模式一个承诺不就是实现重用吗.实例分析 我们直接先来看个实例分析吧,我们现在来写段代码泡茶叶和原创 2009-06-08 16:29:00 · 1257 阅读 · 0 评论 -
《Head First Design Patterns》笔记八:外观模式(Facade Pattern)
概述 在这个高速发展的年代,无数莫名其妙的东西闯进了现代的生活,比如电视,怎么里面有人呢,电话,怎么就有声音呢,电脑,很普通,不过它到底怎么回事,好像无所不能,开机做了什么呢. 我想象一下,要是一个原始人跑到现代社会,肯定会很好奇这些.所有的东西都好像有魔法一般,但事实是大多数人都麻木了,往往会不屑一顾:"无聊,它本来就是这样的" 是的,我们没有人能有能力去记住我们所使用原创 2009-06-05 15:32:00 · 1241 阅读 · 0 评论 -
《Head First Design Patterns》笔记七:适配器模式(Adapter Pattern)
我们先来看个现实的例子,比如说我们买的新家电插头是3个头的,还是圆形头,而家里插座是2头的,如下图(用windows画笔画的,画画毫无天赋,图案比较恐怖,哈哈),这该怎么办呢. 明显型号不匹配,那么我提供2个方案1:去换一台新家电,直到有匹配的2方头插头.2:砸掉家里墙壁上的插座,换个3圆头的插座. 大家看到这个肯原创 2009-06-05 13:47:00 · 1317 阅读 · 0 评论 -
《Head First Design Patterns》笔记十一:组合模式(Composite Pattern)
概述 我们知道,一个数据集里的往往不只是简单的元数据,往往同样嵌套的有子数据集,子数据集同样会嵌套,这就是树形结构,从跟部到最末端的叶子,一层层往下走,那么这种数据结构我们同样需要做到遍历,怎么办呢. ok,循环递归啊,判断是否枝丫还是叶子,是叶子就show出来,枝丫就递归一下. 这个是ok,但递归其实很复杂的,不少人可能会反对这一说法,很简单吗,编程的兄弟都会,不错,是不原创 2009-08-07 16:18:00 · 1441 阅读 · 0 评论 -
《Head First Design Patterns》笔记十二:状态模式(State Pattern)
概念 这个模式很好理解,一个实例的行为动作根据状态不同,而实现也不同,就比方说我们用打印机,有有纸状态,无纸状态,你要打印的时候,有纸状态就直接打印,无纸呢就发出警告。 程序的实现,我们第一直观当然是这样编码 if (hasPage) Print(); else ShowErrorMessage(); 这样就是在每一个动作里加上状态的判断,当然没有问题,但原创 2009-08-10 18:33:00 · 4026 阅读 · 0 评论 -
《Head First Design Patterns》笔记十:迭代器模式(Iterator Pattern)
概述 computer初始翻译为计算机.为何,计算数据.处理数据.很好理解,我们在电脑上的所有的应用无非只是一段一段的数据集.那么数据怎么读取保存排序等等,方式各种各样,当我们处理数据集的时候,就先需要了解数据集的具体存储方式,复杂点的甚至需要理清里面各字段的意义,然后再来读取,这显然增加了应用的复杂度,有没有好的模式,让我们不需要了解细节.就能够处理数据呢,有,Itera原创 2009-08-06 17:24:00 · 1291 阅读 · 0 评论 -
《Head First Design Patterns》笔记六:命令模式(Command Pattern)
概述 调用1个动作,我们一般做法就是直接调用,比如开灯的话就是:light.On(),这样做很好,但如何实现针对这个动作来实现undo,redo呢,我们就会感觉有点犯傻了,因为light.On()是一个方法,Undo(),Redo()也是方法,一个方法怎么调用方法呢,其实,换一个思路,把一个方法转为一个中间类,不就解决了。 ps:我们设计的时候如果2个类耦合严重,那么我们原创 2009-05-24 18:30:00 · 1300 阅读 · 0 评论 -
读书《the pragmatic programmer》:如何做一个好的程序员
编程是艰难的,是枯燥的,无数的商业公司告诉我们它们产品的奇迹。它们的语言是最佳的。然而这些并不是真的,世上没有最佳的工具,作为程序员不应该局限于某种技术,而是让自己能够选择好的解决方案。那么好的程序员都有哪些特征呢: 1 Provide Options,Dont make lame excuses 在所有的弱点中,最大的弱点就是害怕暴露弱点 当犯错误的时候,承认它, 不要责备别原创 2009-04-30 20:53:00 · 1193 阅读 · 0 评论 -
《Head First Design Patterns》笔记五:单件模式(Singleton Pattern)
概述 Singleton模式就是1个类只允许唯一一个实例并提供一个全局访问点。比如电脑上的cache,局域网的一台打印机,软件的xml配置文件读写等等只允许有1个实例工作,就需要用到Singleton来实现,我们需要注意的是Singleton在于限制,而不是扩展。 需求 我们现在有一家巧克力工厂,只有1架巧克力熔炉。几条生产线一起工作的话,我们不允许每原创 2009-04-30 00:04:00 · 1211 阅读 · 0 评论 -
《Head First Design Patterns》笔记四:工厂模式(Factory Pattern)
引言 工厂模式,字面就很好的解释了这个模式,我们日常生活用的电器,穿的衣服,玩的电脑,是怎么作出来的,大多数人都跟我一样,稀里糊涂搞不大懂,也不需要去了解,比方说衣服生产的厂家换了制作工艺,我们需要去了解吗.不需要,只需要的就是花钱去购买,就是说事物不管怎么变,处理事物的方式不变. ok,这就是工厂模式,多么优美的方式,引申到软件里面,就是不管某项事物如何变化原创 2009-04-27 15:17:00 · 1450 阅读 · 0 评论 -
《Head First Design Patterns》笔记二:观察者模式(Observer Pattern)
第二篇 观察者模式 好久没写文章了,为我的懒惰害臊一下. 首先还是需求,我们现在有个新项目,做一个气象站的项目,负责提供气象资料(temperature, humidity, pressure) 给天气显示板,这里有2个显示板,一个是状态显示板,一个统计显示板.ok,这个很简单,我们立马开始动手做uml图 每当气象站获得新信息的时候,就开始调用Updat原创 2009-04-03 14:59:00 · 1551 阅读 · 0 评论 -
《Head First Design Patterns》笔记三:装饰者模式(Decorator Pattern)
前言 什么是装饰呢,通俗来说,人靠衣装,佛靠金装,这里呢,人就是被装饰者,衣服就是装饰品,你穿再多衣服,性质没变,还是个人啦,你还是可以再戴上新戒指,而不必关心这人之前穿了什么衣服. 引申到软件工程里呢,就是一个已存在的类,可能需要不断的增加新功能,那么我们新建新功能 当做装饰品,装饰现有的类,而不必要去不断修改已有的代码,要知道碰旧代码通常是一件让人头疼的事情.这符合设计模式原创 2009-04-14 15:34:00 · 1381 阅读 · 0 评论 -
《Head First Design Patterns》笔记十四:复合模式(Compound Pattern)
概述 设计模式,GOF给出23个模式,《Head First DesignPatterns》主要描述了其中的13个模式。我们一般应用软件,很少有只用1中模式的,往往都是几个模式一起用。这就是复合模式。其实,我们在应用模式的时候大概每个人都已经在使用复合模式了。 还是来看实例吧,主角我们还是选用可爱的鸭子,模式应用实例 我们来做个鸭子模拟器吧原创 2009-08-31 09:01:00 · 1809 阅读 · 0 评论