摘要: “唉!我没那种命啦,轮也不会轮到我,爱情老是缺货,我争什么?”一大清早就手机响,把我春天的梦都吵没了。“喂,谁啊,大清早的还要不要人睡觉啦?”“师傅,是我啦,小刘!”“是你呀,是不是看我给你发的装饰器模式代码有问题要问我啦?”“才不是啊,我可没那么笨,你的资料一看就懂了,有你这位大虾指导,我的设计模式之路无比光明!今天找你是有其它事情啦!”“别拍马屁了,有什么事情就快说吧!”“嗯,是这样的,为了答谢师傅的耐心指导,准备今天约师傅看电影,不知师傅肯赏脸否?”哇,这可是天上掉下来的美差啊,抑制住心中的喜悦,淡淡的说:“我得看看今天的行程,这样吧,一会我回电话给你吧!”“哦,这样啊,那好吧,等你电话 阅读全文
posted @ 2013-04-12 21:42 liyunyu1 阅读(249) 评论(0) 推荐(0) 编辑
摘要: Decorator模式一 意图 动态地给一个对象添加一些额外的职责。就增加功能来说,Decorator模式相比生成子类更为灵活。——包装器Wrapper。二 动机 有时我们希望给某个对象而不是整个类添加一些功能。例如,一个图形用户界面工具箱允许你对任意一个用户界面组件添加一些特性,例如边框,或是一些行为,例如窗口滚动。使用继承机制是添加功能的一种有效途径,从其他类继承过来的边框特性可以被多个子类的实例所使用。但这种方法不够灵活,因为边框的选择是静态的,用户不能控制对组件加边框的方式和时机。 一种较为灵活的方式是将组件嵌入另一个对象中,由这个对象添加边框。我们称这个嵌入的对象为装饰。这个装... 阅读全文
posted @ 2013-04-12 21:40 liyunyu1 阅读(301) 评论(0) 推荐(0) 编辑
摘要: 老樊,你这次去山西出差得多久啊?”小刘在电话那头说。“呃……这回我过来手头上兼着三个项目,估计得有段时间啊!你不知道来山西这几天我有多累啊,写文档写到手都要抽筋了!”“那你可得注意休息啊,上次你给我说的那两个设计模式我已经很熟练了,你啥时候教我新的设计模式啊?”“这样吧,等我把手头上的这个需求分析写完,我就给你电话。”写文档时间过得很快,一转眼就到深夜了。酒店很安静,但是我的思绪却清晰不起来,用户需求中有一部分始终不能很好的理解,也许是想了一天,大脑零件也该断电休息休息了。躺在床上怎么也睡不着,老觉得有件事情还没做,仔细想想才记起今天答应给小刘讲设计模式了。发条短信过去试探试探看看她睡没,“小 阅读全文
posted @ 2013-04-12 20:57 liyunyu1 阅读(196) 评论(0) 推荐(0) 编辑
摘要: 一、组合模式简介(Brief Introduction)组合模式,将对象组合成树形结构以表示“部分-整体”的层次结构,组合模式使得用户对单个对象和组合对象的使用具有一致性。二、解决的问题(What To Solve)解决整合与部分可以被一致对待问题。三、组合模式分析(Analysis)1、组合模式结构Component类:组合中的对象声明接口,在适当情况下,实现所有类共有接口的行为。声明一个接口用于访问和管理Component的子部件Leaf类:叶节点对象,叶节点没有子节点。由于叶节点不能增加分支和树叶,所以叶节点的Add和Remove没有实际意义。有叶节点行为,用来存储叶节点集合Compos 阅读全文
posted @ 2013-04-12 19:42 liyunyu1 阅读(225) 评论(0) 推荐(0) 编辑
摘要: 今天讲外观模式,这个模式其实理解起来超级简单,为什么呢?这个模式其实我觉得可以用四个字来形容它:化繁为简。因为这个模式就是用来提供简化接口的。什么是简化接口?其实就是将很多复杂的接口组合起来成为一个新接口。你或许会问,把许多复杂的接口组合起来不是会更复杂吗,怎么会变得简单,这不是自相矛盾吗?哈哈,那你就错了,其实外观模式更像一个东西:宏。又拿宏说事儿了,不是上次命令模式里面提到过“命令宏”的吗,这个模式和宏有什么关系呢?嘿嘿,如果把上次“命令宏”称为“狭义的宏”的话,那么外观模式就是“广义的宏”(似乎越来越难理解了……)。 别急,让我慢慢道来,先解决为什么叫“广义的宏”这个问题。首先,广义代表 阅读全文
posted @ 2013-04-12 11:07 liyunyu1 阅读(390) 评论(0) 推荐(0) 编辑
摘要: 概述 (摘自百度百科)外观模式是软件工程中常用的一种软件设计模式。它为子系统中的一组接口提供一个统一的高层接口。这一接口使得子系统更加容易使用。结构Facade这个外观类为子系统中Packages 1、2、3提供一个共同的对外接口Clients客户对象通过一个外观接口读写子系统中各接口的数据资源。Packages客户可以通过外观接口读取的内部库示例Java这是一个抽象的示例。一个客户“you”通过外观接口“computer”获取计算机内部复杂的系统信息。/* Complex parts */class CPU {public void freeze() { ... }public voi... 阅读全文
posted @ 2013-04-12 11:02 liyunyu1 阅读(211) 评论(0) 推荐(0) 编辑