设计模式--装饰着模式

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


/**
* 装饰器接口
*/
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

猜你喜欢

转载自www.cnblogs.com/lgs-star/p/9024134.html