java简单的装潢模式
来源:互联网 发布:安卓socket编程实例 编辑:程序博客网 时间:2024/04/18 06:23
1、目标装饰的类
interface SmallAnimal {void doStuff();}class Rat implements SmallAnimal {public void doStuff() {System.out.println("Rat doStuff");}}
2、需要添加的装饰类
interface Feature {void load();}class FlyFeature implements Feature {public void load() {System.out.println("FlyFeature load");}}class DigFeature implements Feature {public void load() {System.out.println("DigFeature load");}}
3、装饰类
class DecorateSmallAnimal implements SmallAnimal {private SmallAnimal animal;private Class<? extends Feature> clz;public DecorateSmallAnimal(SmallAnimal animal, Class<? extends Feature> clz) {this.animal = animal;this.clz = clz;}public void doStuff() {Feature proxy = (Feature) Proxy.newProxyInstance(getClass().getClassLoader(), clz.getInterfaces(),new InvocationHandler() {public Object invoke(Object o, Method m, Object[] args)throws Throwable {Object returnObj = m.invoke(clz.newInstance(), args);animal.doStuff();return returnObj;}});proxy.load();}}
4、使用
SmallAnimal jetty = new Rat();jetty = new DecorateSmallAnimal(jetty, FlyFeature.class);jetty = new DecorateSmallAnimal(jetty, DigFeature.class);jetty.doStuff();
5、结果
DigFeature loadFlyFeature loadRat doStuff
0 0
- java简单的装潢模式
- 厨房跟卫生间的装潢
- 装潢您的Blog,162个flash时钟
- KTV室内设计,装修装潢过程中应注意的事项
- 装潢投诉
- 话说装潢
- Java简单模式的简单例子
- 简单的Java C/S模式
- 观察者模式java的简单实现
- 一种简单的java工厂模式
- java几种简单的设计模式
- 一个java实现的简单工厂模式
- java 简单的单例模式 例子
- Java适配器模式的简单应用
- java 简单的单例模式
- Java实现简单的工厂模式
- 简单工厂模式java代码的实现
- java观察者模式的简单案例
- fgets()
- Get与Post的区别
- PHP安装Mcrypt扩展
- 挨踢之路之学习流程篇(七)
- 世界上最简单的无锁哈希表
- java简单的装潢模式
- 第2周:Java事件处理
- 【原理】Histograms of Oriented Gradients (HOG)理解
- 设计模式之-抽象工厂
- Validate Binary Search Tree
- UVA-10127-Ones
- 文本特征提取方法研究
- 【1】多线程的简单介绍和使用
- 名称解析