码迷,mamicode.com
首页 > 其他好文 > 详细

设计模式--装饰着模式

时间:2018-05-11 13:48:09      阅读:120      评论:0      收藏:0      [点我收藏+]

标签:日志记录   执行时间   timer   流程   direct   文章   void   行业   设计   

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


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

设计模式--装饰着模式

标签:日志记录   执行时间   timer   流程   direct   文章   void   行业   设计   

原文地址:https://www.cnblogs.com/lgs-star/p/9024134.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!