摘要: 适配器模式和外观模式有些相似,甚至其实现方式也相似,不同的只是他们的侧重点。 1. 适配器模式 适配器模式,我想用处应该非常广泛,特别是对于环境多变的场合,其定义如下: 将一个类的接口,转换成客户希望的另一个接口。适配器让原本不兼容的类可以合作无间。 这解决了本章开篇的那个需求:“将一个方块放入一个... 阅读全文
posted @ 2011-02-17 12:18 Tankery 阅读(274) 评论(0) 推荐(0) 编辑
摘要: 命令模式其实比较简单,就是封装了请求,使得请求有统一的接口。其定义如下:将请求封装成对象,这可以让你使用不同的请求、队列,或者日志请求来参数化其他对象。命令模式也可以支持撤销操作。也就是说,命令模式可以通过一个抽象的命令类来扩展各种命令,接着,你可以使用诸如队列、链表之类的结构来很好的管理这些命令,使得命令对象包含的操作被有序的执行,以实现日志等功能。并且,由于命令对象能很清楚的知道它负责的请求需要的执行流程,它就能很轻易的实现撤销操作。命令模式具有上述的这些特性,使得它被广泛的使用于日志、撤销、菜单操作等等场合。命令对象的实现,可以用下图表示:图中可以看到,客户可以通过ConcreteCom 阅读全文
posted @ 2011-02-15 17:46 Tankery 阅读(110) 评论(0) 推荐(0) 编辑
摘要: 好久不见,又来到了这里。。 博客中断了如此之久,当然是有借口的。首先是单件模式的特殊性,它涉及到多线程!OMG,小弟才疏学浅,还从未写过一个多线程的程序,多进程的倒是写过一个,不过跟该模式就没太大关系了。另外,前一篇工厂模式,费了九牛二虎之力,却只弄清楚一个对象的创建,未免太桑人心了。。再者,寒假一... 阅读全文
posted @ 2011-02-14 20:37 Tankery 阅读(230) 评论(0) 推荐(0) 编辑
摘要: 这一章,看得比较纠结,以前以为自己看懂了,回顾一下,组织语言想写博客的时候,发现还是没弄清楚。遂又上网查资料,发现一个比较好的网站:http://www.jdon.com/designpatterns/,就是广告多了点,说的还是很明白的。但我发现该网站上所说的工厂模式,似乎与Head First上讲... 阅读全文
posted @ 2011-01-15 21:01 Tankery 阅读(273) 评论(0) 推荐(0) 编辑
摘要: 装饰者模式 (Decorator Pattern) 非常有趣,如果不是看过设计模式,看到这个模式的代码时一定大吃一惊:“这是什么东西?怎么这么多类!” 是的,这就是这个模式的特别之处了,无数类摆在你面前,你无所适从。但这个模式是用来干什么的呢?用来管理大量同样类型但有细小属性差别的事物(我自己想的定... 阅读全文
posted @ 2011-01-14 11:45 Tankery 阅读(233) 评论(0) 推荐(0) 编辑
摘要: 观察者 (Observer) 模式应该是使用得非常广泛的一个模式,在JDK中就有内建的观察者模式。首先我来说说什么是观察者模式。 观察者模式:定义了对象之间一对多的依赖,这样,当一个对象改变时,它的所有依赖者都会收到通知并自动更新。 很多场合下,我们都需要这样的一对多关系。设想一个GUI的计算器程序... 阅读全文
posted @ 2011-01-13 10:36 Tankery 阅读(195) 评论(0) 推荐(0) 编辑
摘要: 上回将之前看过的章节都大致梳理了一遍,回过头去看的时候,发现看不懂了。。太泛。 从这篇文章起,我想一个个详细的说明,当是复习了。 今天,先来讲述策略模式的故事。 为什么要用策略模式? 这一章从一开始便告诉我们,用继承来解决扩展问题并不是最好的办法,因为一旦你需要一个新的行为时,你就必须继承出一个新类... 阅读全文
posted @ 2011-01-12 08:24 Tankery 阅读(160) 评论(0) 推荐(0) 编辑
摘要: 前两周,各种课程设计和实验,各种团队活动占据了我几乎所有的时间,睡觉都没啥时间,更不用说写博客了。 今天下午刚刚投出高频课设的PCB,暂时得以清闲,赶紧来写写博客,待我整理完微机原理的课设,后面的课设和实验也该总结了~~ QT,是我最近一直在使用的编程框架,非常便捷和强大~不但封装了各种复杂的系统操... 阅读全文
posted @ 2011-01-10 21:28 Tankery 阅读(2494) 评论(0) 推荐(0) 编辑
摘要: 很长一段时间前,看了一部分书,写了些笔记,由于某些原因中断了,今天重新拾起这本书,要继续看下去~~ 以下是上次的笔记,重新开始~ 1. OO原则: 1.1.封装变化 指的是设计过程中,设计者应当充分考虑将来可能会发生变化的代码部分,将它们提取并封装起来。 1.2.多用组合,少... 阅读全文
posted @ 2011-01-10 21:01 Tankery 阅读(166) 评论(0) 推荐(0) 编辑
摘要: 又是两个星期没有写文章了,事情太多太杂,无法静下心来整理自己的思绪。只有这新年的清晨,才有闲情逸致~~ 废话不多说了,切如正题。这段时间,经常性的跑到Ubuntu下去撒野。为的就是看看自己的程序到底有多跨平台。。当然,QT成了我跨平台最好的助手。 Ubuntu下的安装其实也是蛮简单的,今天我就主要讲... 阅读全文
posted @ 2011-01-03 06:57 Tankery 阅读(1418) 评论(0) 推荐(1) 编辑