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

原创 2007年09月15日 13:57:00

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

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

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

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

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

相关文章推荐

免费开源的vtiger crm 客户关系管理系统- vtiger crm 模块功能详细介绍

vtiger crm 模块功能详细介绍 系统按照营销的职能体系分为了营销管理、销售管理、售后服务、库存管理四大部分,另外包括工作台、统计分析、工具、系统设置功能。 (一)工作台 1.首页...
  • fafa211
  • fafa211
  • 2012年06月27日 16:51
  • 5919

Android网络编程之一个Android下菜单系统模块的实现(开桌功能))(Android客户端+服务器端Servlet+Mysql)

为了实现顾客下单的功能,需要在MySQL数据库的中设置一张表:ordertbl   然后在服务器端的Wireless项目下的com.moka.entity包中新建一个此表的对象类O...

《Apache Kylin客户端系统功能测试说明》

1、新增操作 在oracle数据库中给t_dealtime表增加一条id为19999的记录,如下图所示:     执行程序后,在Kylin web界面查看:     ...

split分隔功能

split public String[] split(String regex) 根据给定正则表达式的匹配拆分此字符串。 该方法的作用就像是使用给定的表达式和限制参数 0 来调用两参数 ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:将系统功能和客户化扩展功能分隔开来....
举报原因:
原因补充:

(最多只允许输入30个字)