Java模块通信

标签 java refactoring decoupling

我有一个用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/

相关文章:

java - 无法用常规类实例化类型

c# - 将一个字符串拆分成一个唯一的列表——重构它

php - 教如何制作易于维护且耦合度较低的程序的书籍/教程?

c# - 避免与策略模式耦合

java - JDK中是否包含jdbc api?

java - 什么 unicode 字符最适合在字符串中绘制方波

c# - 有关如何链接、编译等以及它们如何组合在一起的书籍?

sql - 在 mySQL 中压缩 SQL

java - 使用 RMI 访问对象

c# - 使用委托(delegate)而不是接口(interface)来解耦。好主意?