我有一个用Java编写的模块 - Web服务模块,它接受请求处理它(这里有一些业务规则),在数据库中保存(修改或删除)值(使用Hibernate),然后发送状态响应)。重构该模块是否合理,以便最终有 2 个模块 - 1 是 Web 服务模块,2 - 应用业务规则和进行数据库流程的处理模块?如果是,那么模块之间信息交换的良好做法是什么? 谢谢!
最佳答案
记住“KISS”——保持简单;愚蠢。
更重要的是拥有干净且可维护的代码,重点关注 领域模型,而不是基于技术考虑将其分解。
是的;数据库存储是一个方面,是的,处理Web服务调用是另一个方面,但是很容易花费大量时间来进行“干净”的分离,唯一的结果是以后更改内容需要更长的时间。 (所有从事 14 层“企业”应用程序工作的人都会告诉您。)
理想情况下,“业务逻辑”是您编写的一个模块,并且 Web 服务适配和数据存储应该“神奇地”工作。由于情况并非如此,您显然也必须处理这个问题,但这不是主要焦点。
我强烈建议:业务规则=您的数据模型。 Web 服务方法应尽可能精简,并尽可能干净地公开模型。
这是一篇关于“业务层”颇有见地的文章http://thedailywtf.com/Articles/The-Mythical-Business-Layer.aspx
还要记住,“层”是抽象概念,它们在不同的 Eclipse 项目等中“物理上”分离并不是基本要求。实际上,事实并非如此。
关于Java模块通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3940851/