摘要: 1. 概述 动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更灵活。 原理:增加一个修饰类包裹原来的类,包裹的方式一般是通过在将原来的对象作为修饰类的构造函数的参数。装饰类实现新的功能,但是,在不需要用到新功能的地方,它可以直接调用原来的类中的方法。修饰类必须和原来的类有相同的接口。2. 模式中的角色 2.1 抽象构建(Component):定义一个抽象接口,用以给这些对象动态地添加职责。 2.2 具体构建(ConcreteComponent):定义一个具体的对象,也可以给这个对象添加一些职责。 2.3 装饰类(Decorator): 装饰抽象类,继承了Comp... 阅读全文
posted @ 2012-07-03 15:00 Wang Juqiang 阅读(8085) 评论(3) 推荐(2) 编辑
摘要: 在讲策略模式之前,我先给大家举个日常生活中的例子,从首都国际机场到XXX酒店,怎么过去?1)酒店接机服务,直接开车来接。2)打车过去。3)机场快轨+地铁 4)机场巴士 5)公交车 6)走路过去(不跑累死的话) 等等。使用方法,我们都可以达到从机场到XXX酒店的目的,对吧。那么我所列出的从机场到XXX酒店的的方法,就是我们可以选择的策略。 再举个例子,就是我们使用WCF时,往往避免不了对它进行扩展,例如授权,我们可以通过自定义授权来扩展WCF。这里我们可以通过自定义AuthorizationPolicy和ServiceAuthorizationManager来实现对它的扩展,这是策略模式的... 阅读全文
posted @ 2012-07-03 10:35 Wang Juqiang 阅读(7745) 评论(3) 推荐(2) 编辑