对于下列的情景,
给用户的前置接口 程序逻辑 给用户的后置接口
================================
在不考虑 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() { } }
#大家觉得那种方式好#
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于