设计模式--装饰着模式

Posted lgs-star

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设计模式--装饰着模式相关的知识,希望对你有一定的参考价值。

每次看到大牛写的由浅入深的文章总是有醍醐灌顶的感觉,也同时感到自己的渺小。
                            ---长路漫漫、继续努力


/**
* 装饰器接口
*/
public interface DecorPort {
void excute();
}

/**
* 记录日志装饰器
*/
class LogDecor implements DecorPort{
private DecorPort impl;
public LogDecor(DecorPort impl ) {
this.impl = impl;
}
public void excute() {
//日志记录
this.impl.excute(); //传递进来的业务类的业务流程执行方法excute()
//日志记录
}
}

/**
* 计算执行效率的装饰器装饰器
*/
class TimeCaculDecor implements DecorPort{
private DecorPort impl;
public TimeCaculDecor(DecorPort impl ) {
this.impl = impl;
}
public void excute() {
//执行前时间记录
this.impl.excute(); //传递进来的业务类的业务流程执行方法excute()
//执行后时间计算
}
}

/**
* 业务累类
*/
class Impl implements DecorPort{
public void excute() {
//业务执行流程
}
}


执行:
执行业务的同时打印日志使用LogDecor装饰器:
LogDecor logDecor = new LogDecor(new Impl);
logDecor.excute();
执行业务的同时计算执行时间,使用TimeCaculDecor装饰器:
TimeCaculDecor timerDecor = new TimeCaculDecor(new Impl);
timerDecor.excute();

 相比模版模式,装饰器模式在定义业务处理代码之外的执行流程上显得更加的个性化。有更大的自由空间
参考:https://mp.weixin.qq.com/s?__biz=MzAxOTc0NzExNg==&mid=2665513187&idx=1&sn=f603eee3e798e79ce010c9d58cd2ecf3&scene=21#wechat_redirect

以上是关于设计模式--装饰着模式的主要内容,如果未能解决你的问题,请参考以下文章

9.装饰着模式

java 装饰着模式,谁能给我说明一下,谢谢了

今天俺要说一说装饰着模式(Decorator)

增强一个对象的方法(继承装饰者模式动态代理)

java_设计模式_装饰设计模式

23种设计模式学习之装饰者模式