装饰器模式:即客户端先调用的接口A,现在客户端需要在调用接口A的时候,期望A有更多的功能。
具体代码如下:
package com.mkf.pattern;
public interface InterfaceOne {
public void operation();
}
package com.mkf.pattern.impl;
import com.mkf.pattern.InterfaceOne;
public class Source implements InterfaceOne {
@Override
public void operation() {
System.out.println("源被调用:" + Source.class.getName());
}
}
package com.mkf.pattern.impl;
import com.mkf.pattern.InterfaceOne;
public class DecoratorOne implements InterfaceOne {
private InterfaceOne io;
public DecoratorOne(InterfaceOne io) {
super();
this.io = io;
}
@Override
public void operation() {
System.out.println("DecoratorOne 增强功能前");
io.operation();
System.out.println("DecoratorOne 增强功能后");
}
}
package com.mkf.pattern.impl;
import com.mkf.pattern.InterfaceOne;
public class DecoratorTwo implements InterfaceOne {
private InterfaceOne io;
public DecoratorTwo(InterfaceOne io) {
super();
this.io = io;
}
@Override
public void operation() {
System.out.println("DecoratorTwo 增强功能前");
io.operation();
System.out.println("DecoratorTwo 增强功能后");
}
}
package com.mkf.pattern.impl;
import com.mkf.pattern.InterfaceOne;
public class DecoratorThree implements InterfaceOne {
private InterfaceOne io;
public DecoratorThree(InterfaceOne io) {
super();
this.io = io;
}
@Override
public void operation() {
System.out.println("DecoratorThree 增强功能前");
io.operation();
System.out.println("DecoratorThree 增强功能后");
}
}
package com.mkf;
import com.mkf.pattern.InterfaceOne;
import com.mkf.pattern.impl.DecoratorOne;
import com.mkf.pattern.impl.DecoratorThree;
import com.mkf.pattern.impl.DecoratorTwo;
import com.mkf.pattern.impl.Source;
public class TestDecorator {
/**
* @param args
*/
public static void main(String[] args) {
Source s = new Source();
InterfaceOne io = new DecoratorOne(
new DecoratorTwo(
new DecoratorThree(s)));
io.operation();
}
}
输出结果:
DecoratorOne 增强功能前
DecoratorTwo 增强功能前
DecoratorThree 增强功能前
源被调用:com.mkf.pattern.impl.Source
DecoratorThree 增强功能后
DecoratorTwo 增强功能后
DecoratorOne 增强功能后
分享到:
相关推荐
54-Spring设计模式之装饰器模式1
c++设计模式-结构型模式-装饰器模式;QT工程;c++简单源码; 装饰器(Decorator)模式的定义:指在不改变现有对象结构的情况下,动态地给该对象增加一些职责(即增加其额外功能)的模式,它属于对象结构型模式。
ios平台中通过最简单的代码讲解装饰器模式,可在博客http://blog.sina.com.cn/s/blog_161d504630102wxis.html中查看简单解释
30 丨 装饰器模式:如何优化电商系统中复杂的商品价格策略?.html
2 装饰器模式-MOOC课程内容.pdf
装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构。这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装。 这种模式创建了一个装饰类,用来包装原有的类,并在...
本工程是使用demo构建装饰器,以及装饰器的使用案例。 从最简单的装饰器到带参数的,带任意参数的,到类装饰器等。代码案例比较全。可作为学习参考与交流。
装饰模式 PPT 前端 javascript 讲解了装饰模式在前端的运用,举例说明,ppt内的代码连起来可执行
NULL 博文链接:https://alaric.iteye.com/blog/1911949
java常用设计模式-装饰器模式
7. 装饰器模式1
装饰器模式,设计模式.
简单了说明,并用代码的方式解释了什么是装饰器模式,方便想要学习设计模式的童靴可以更好的学习和掌握设计模式,是自己的代码变得更高效和优雅
控制访问,装饰器设计的四个名词,装饰器模式与代理模式的区别,
这也是我们在第 10 节中讲的不推荐使用继承的原因。基于装饰器模式的设计方案在第 10 节中,我们还讲到“组合优于继承”,可以“使用组合来替代继承”。针对刚刚的
装饰器模式.xmind
Python实现适配器模式、装饰器模式、代理模式
《C++20设计模式》学习笔记-第9章装饰器模式-配套代码
东北大学设计模式实验 实现单例模式,组合模式,Builder模式,装饰器模式,并使用设计模式实现赌场
装饰器模式实现简单demo