摘要: 意图:运用共享技术有效的支持大量细粒度的对象 为什么使用? 1:软件系统中,对象的数量可能太多,从而导致运行时的代价,比如 字处理软件,如果以每个汉字作为一个对象,那么几千个汉字就有几千个对象,显然 这样耗费了很多内存,于是我们找出这些对象群的共同点,设计一个元素,封装可以共享的类,当然,有些特性是取决于应用环境 是不可以共享的。这也是本模式中两个很重要的概念 内部状态和外部状态之分,... 阅读全文
posted @ 2008-12-27 09:50 wangok 阅读(155) 评论(0) 推荐(0)
摘要: 意图:将对象组合成树形结构以表示“部分---整体”的层次结构,本模式使得用户对单个对象和组合对象的使用具有一致性。 呵呵,说的很明白了 为了简化 使用单个对象与组合对象时的复杂性。看了它的意图应该可以理解不少了。 为什么使用? 1:在开发中,客户经常要对单个对象与组合对象 区别对待,这样就导致客户部分的代码有复杂性的臭味。 2:组合对象变化(如再组合一个单个对象)导致客... 阅读全文
posted @ 2008-12-25 11:27 wangok 阅读(189) 评论(0) 推荐(0)
摘要: 意图:为其它对象提供一种代理 (呵呵 名词解释名词)以控制对这个对象的访问 GOF他们的意思是:客户端在一些不想或者不能直接引用一个对象的情况下,在客户和目标对象之间加一个中间层,去掉不让客户直接使用或者增加一些客户需要的服务。这个中间层就扮演代理的角色。 为什么要使用代理模式呢? 1:对于一个已经存在的对象,如果客户端需要使用,但需要对原有的方法做一些扩展或修改, 这种... 阅读全文
posted @ 2008-12-20 17:31 wangok 阅读(283) 评论(0) 推荐(0)
摘要: 意图:动态地给一个对象添加一些额外的职责,就增加一些功能来说,本模式比生成子类更为灵活。 为什么使用? 1: 我们经常使用继承来实现功能的拓展,本来这样一般也没什么问题,但如果需要拓展的种类很多,那么肯定生成很 多子类。这还不是最致命的,很多时候还需要这些功能子类的组合,如果这时候我们还使用继承,那么这会导致类 爆炸。如何使“对象功能的扩展”能够根据需要来动态地实现同时又避... 阅读全文
posted @ 2008-12-19 17:06 wangok 阅读(345) 评论(0) 推荐(0)
摘要: 意图: 将一个类的接口转换为客户希望的另一种接口,从而使原来接口不匹配而无法在一起工作的两个类能够一起工作。 为什么使用呢? 这个模式是比较简单的,第一次看GOF的书时,就感觉比较好理解。不知道大家是否有同样理解,因为它的意图已 经很好的回答了 我们为什么要使用它。不知道大家有过这样的经历没有,我们有时遇到两个没有关系的类组合在一起 使用,由于接口不... 阅读全文
posted @ 2008-12-17 11:37 wangok 阅读(264) 评论(0) 推荐(0)
摘要: 意图:将抽象部分与实现部分分离 ,使他们都可以独立变化 估计大家看了这个意图后,基本是不明白在说什么,分离 是指 它们能够独立变化,或者有一定的弱耦合。抽象呢 “存在于多个实体中的概念性的联系” 多个对象如果具有相同的概念性联系,那么它们就可以通过一个共同的类来描述,如果一些类具有共同的概念性联系 那么可以通过一个共同的抽象类来描述。以上是 阎宏说的 ,应该比较好理解 ... 阅读全文
posted @ 2008-12-15 17:43 wangok 阅读(417) 评论(2) 推荐(0)
摘要: 学习 使用设计模式也快两年了,中间也看了很多书,也看了很多 网上的帖子。现在,我也把自己的理解写出来和大家分享一下,有不对的地方请大家指正。废话少说,先从门面模式开始吧。 意图:为子系统中的一组接口提供一个一致的界面,该模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。 这是GOF 定义的 意图,看了以后 可能还是很模糊,不知道到底该模式有什么好处,为什么要使用它。那好,... 阅读全文
posted @ 2008-12-15 15:28 wangok 阅读(403) 评论(1) 推荐(0)
摘要: 在 BOOL CemuleApp::InitInstance() 函数 的 672行(VERIFY( (m_hTimer = ::SetTimer(NULL, NULL, 300, StartupTimer)) != NULL ); ) 启动一个定时器 在该定时器的 执行函数( void CALLBACK CemuleDlg::StartupTimer(... 阅读全文
posted @ 2008-12-06 17:28 wangok 阅读(1983) 评论(6) 推荐(0)
摘要: 一直在看驴子的代码,网上进行深入分析的文章不多,也许 这和驴子的代码量太大,代码质量不高也许有关系。但更多的也许是不想分享,舍不得分享。其实,它本身就是开源的 不分享人家慢慢看也能看懂 。由于时间关系 我会陆续把分析的文章帖上来,与各位网友分享,也希望大家拍砖 进行讨论 也把你的心得分享出来。。系列分析文章如果没有特别注明 以easy mule 0.47为准 CListenSocke... 阅读全文
posted @ 2008-11-07 18:46 wangok 阅读(580) 评论(3) 推荐(0)