设计模式之第4章-装饰模式(Java实现)
2015-01-18 23:02
211 查看
[b]设计模式之第4章-装饰模式(Java实现)[/b]
“怎么了,鱼哥?”
“唉,别提了,网购了一件衣服,结果发现和商家描述的差太多了,有色差就算了,质量还不好,质量不好就算了,竟然大小也不行,说好的3个X,邮的却是一个X的,不说了,退货去。你先开讲吧,你说说就一个东西还装饰个什么劲儿。”(装饰模式石化中:这关我什么事儿撒。)恩,今天由我来讲,讲之前先来个段子:话说面条被追到一个理发店,出来一个方便面,然后追他的人一把抓住他就开打:小子(第四声),烫个头发我就不认识你了么?其实那人认错了,出来的真的是方便面,我认识的,因为方便面屁股上有胎记,恩。然后为什么会认错呢?没错,就是他认为面条“装饰了一下”。好了,我就是装饰。不过鱼哥的衣服真的不怨我、、、
[b]装饰模式之自我介绍[/b]
先来看下有关我的定义:Attach additional responsibilities to an object dynamically keeping the same interface. Decorators provide a flexible alternative to subclassing for extending functionality.翻译过来的意思就是动态的给一个对象添加一些额外的职责。就增加功能来说,装饰模式想比生成子类更为灵活。下面的是我的类图:
View Code
接下来可以通过测试类测试一下装饰后的效果:
好了,有关装饰模式的到此就没了。欲知后式(此为模式)如何,且听下回分解~(作者按:卧槽,竟然抢我台词,别理我,我想静静,别问我静静是谁)
[b]装饰模式之应用场景[/b]
不影响其他对象的情况下,以动态、透明的方式给单个对象增加职责。
处理可以撤销的职责。
以上。欲知后式何如,且听下回分解。
第一篇:设计模式之序章-UML类图那点事儿
第二篇:设计模式之第0章-单例模式(Java实现)
第三篇:设计模式之第1章-工厂方法模式(Java实现)
第四篇:设计模式之第2章-抽象工厂模式(Java实现)
第五篇:设计模式之第3章-模板方法模式(Java实现)
PS:本博客欢迎转发,但请注明博客地址及作者~
博客地址:http://www.cnblogs.com/voidy/
博客新址:http://voidy.net
<。)#)))≦
“怎么了,鱼哥?”
“唉,别提了,网购了一件衣服,结果发现和商家描述的差太多了,有色差就算了,质量还不好,质量不好就算了,竟然大小也不行,说好的3个X,邮的却是一个X的,不说了,退货去。你先开讲吧,你说说就一个东西还装饰个什么劲儿。”(装饰模式石化中:这关我什么事儿撒。)恩,今天由我来讲,讲之前先来个段子:话说面条被追到一个理发店,出来一个方便面,然后追他的人一把抓住他就开打:小子(第四声),烫个头发我就不认识你了么?其实那人认错了,出来的真的是方便面,我认识的,因为方便面屁股上有胎记,恩。然后为什么会认错呢?没错,就是他认为面条“装饰了一下”。好了,我就是装饰。不过鱼哥的衣服真的不怨我、、、
[b]装饰模式之自我介绍[/b]
先来看下有关我的定义:Attach additional responsibilities to an object dynamically keeping the same interface. Decorators provide a flexible alternative to subclassing for extending functionality.翻译过来的意思就是动态的给一个对象添加一些额外的职责。就增加功能来说,装饰模式想比生成子类更为灵活。下面的是我的类图:
public class ConcreteDecorator extends Decorator{ //定义被修饰者 public ConcreteDecorator(Noodles nood){ super(nood); } //定义自己的修饰方法 private void dsay(){ System.out.println("我烫了头发"); } //重写父类方法 public void say(){ this.dsay(); super.say(); } }
View Code
接下来可以通过测试类测试一下装饰后的效果:
public class Test{ public static void main(String[] args) { Noodels noodels = new sayNoodles(); //进行装饰,烫发开始 noodels = new ConcreteDecorator(noodels); noodels.say(); } }
好了,有关装饰模式的到此就没了。欲知后式(此为模式)如何,且听下回分解~(作者按:卧槽,竟然抢我台词,别理我,我想静静,别问我静静是谁)
[b]装饰模式之应用场景[/b]
不影响其他对象的情况下,以动态、透明的方式给单个对象增加职责。
处理可以撤销的职责。
以上。欲知后式何如,且听下回分解。
第一篇:设计模式之序章-UML类图那点事儿
第二篇:设计模式之第0章-单例模式(Java实现)
第三篇:设计模式之第1章-工厂方法模式(Java实现)
第四篇:设计模式之第2章-抽象工厂模式(Java实现)
第五篇:设计模式之第3章-模板方法模式(Java实现)
PS:本博客欢迎转发,但请注明博客地址及作者~
博客地址:http://www.cnblogs.com/voidy/
博客新址:http://voidy.net
<。)#)))≦
相关文章推荐
- Java语言实现的装饰设计模式复习
- 设计模式之装饰模式(Java实现)
- 设计模式之装饰模式Java实现
- java设计模式:装饰器模式[Decorator]
- 用JSP+Servlet+JavaBean模式实现一个简单的登录网页设计(JSP+Tomcat+MySQL)
- 设计模式之装饰模式 Decoratory Pattern java
- 用Java实现的设计模式系列(1)-Factory
- 用Java实现的设计模式系列(2)-Prototype
- 23种经典设计模式的java实现之生成器模式
- 设计模式 -- 装饰模式 -- c++实现
- 23种经典设计模式的java实现_1_抽象工厂模式
- observer设计模式的java实现
- 23种经典设计模式的java实现_2_适配器模式
- 怎样使用Java实现Factory设计模式
- 23种经典设计模式的java实现_5_职责链模式
- 用Java实现的设计模式-Factory
- 从设计模式学习oop思维,最后再具体通过java实现
- 23种经典设计模式的java实现_3_桥接模式
- 23种经典设计模式的java实现_5_职责链模式
- AspectJ实现设计模式(七)—装饰模式