对于下列的情景,
给用户的前置接口
程序逻辑
给用户的后置接口
================================
在不考虑 aop 实现的前提的下,以下两种做法:
1 定义固定接口,通过某种方法传入到以上代码段
public interface Handler {
void doBefore();
void doAfter();
}
Handler handler=...;
handler.doBefore();
程序逻辑...
Handler.doAfter();
用户继承Handler即可
`
2 使用感知的思想,定义两个功能类
public interface BeforeHandler extends Handler {
void doBefore();
}
public interface AfaterHandler extends Handler{
void doAfter();
}
Handler 仅仅是标记类,什么都不做
仍旧存在一个 Handler,用于注入代码,
Handler handler = null;
if (handler instanceof BeforeHandler) {
BeforeHandler bh = (BeforeHandler) handler;
bh.doBefore();
}
程序逻辑......
if (handler instanceof AfaterHandler) {
AfaterHandler ah = (AfaterHandler) handler;
ah.doAfter();
}
对于用户来讲,可以通过Handler的继承BeforeHandler,AfaterHandler 来实现扩展
public class UserHandler implements AfaterHandler,BeforeHandler{
@Override
public void doBefore() {
}
@Override
public void doAfter() {
}
}
#大家觉得那种方式好#
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于