今天跟同事们聊到要给我们的系统设计一套框架。我问他想要个做什么的框架,他给了我一张图:

框架设计图

我第一感觉是:这不就是SpringMvc的Dispatch Servlet么?第二感觉是:这位同志哥好像没想清楚自己想要什么样的框架。

好的框架

好的框架至少要有两个功能。

第一个功能是减少重复工作、提高开发效率。例如SpringMvc/Struts,减少了Http的重复操作;Hibernate/MyBatis,减少了JDBC操作;另外公司有些业务框架会将重复的业务功能放到框架中。这都起到了提高开发效率的作用。

第二个功能抽取、规范业务逻辑。我在公司写过账务功能的、审批功能的、任务分派的业务框架,基本都是这一类型。这类框架与其称为业务框架,不如称为业务模型。它有助于理解产品和业务逻辑,也便于维护现有功能和扩展新功能。

不过,严格的业务模型与系统优化之间往往是有冲突的。这个带过。

从提高开发效率的角度来讲,那位同志哥的框架要做的事情,基本上SpringMvc已经替我们做了。

从规范业务逻辑的角度来说,这个框架可以承担一部分责任。但是,不同的业务之间千差万别,要把它们全部装进一套处理逻辑里,有点挑战。

©著作权归作者所有:来自51CTO博客作者winters1224的原创作品,请联系作者获取转载授权,否则将追究法律责任 设计讨论:设计什么样的框架? https://blog.51cto.com/winters1224/1881389