关闭

将系统功能和客户化扩展功能分隔开来....

420人阅读 评论(0) 收藏 举报

看到一个 WEB 框架, 其提出了 Interceptor 的机制, 每个 Action 可以配置多个 Interceptor. 这样开发人员可以在执行 Action 前定义一些辅助逻辑处理. 同时该框架提供一些系统的 Iterceptor, 负责处理一些框架需要完成的任务, 比如数据装载, 效验等.

我在这里产生了一个疑问, 对于 Interceptor 的定位问题. 如果Interceptor 是 Action 逻辑执行的一个辅助特性, 那么其不应该包括只有系统才具有的一些 Interaceptor 实现. 如果是为了保持简单, 系统的逻辑也采用该机制, 那么至少应该和 Action 的分离, 而不是提供开发人员机会去将框架的和业务Interceptor 混淆在一起.

后来仔细看了看这些框架默认的 Interceptor. 其中很多的确也算是可以客户化的. 比如效验, 有些系统需要, 可能有些又不需要. 但是这个框架提供的配置打包到 Jar 包中, 也就是说不建议开发人员修改.那就是说这些只是框架本身要用到的, 和客户化的不一样.

仔细想想, 总觉得其有些问题. 如果真的是框架需要, 完全可以采用另外一个 Interceptor 流程. 也就是将客户化的 Interceptor 和框架的 Interceptor 完全隔离开来.

也许应该真正的对每个 Interceptor 进行分析, 判断那些可以客户化, 那么是框架必须的. 这样划分后, 在对此进行设计. 在设计一个框架时, 应该考虑那些是系统的, 那些是客户使用的; 将两者有效的分隔开, 是保证系统行为的一个有效方式. 呵呵

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:51558次
    • 积分:926
    • 等级:
    • 排名:千里之外
    • 原创:38篇
    • 转载:0篇
    • 译文:0篇
    • 评论:19条
    文章分类
    最新评论