【发布时间】:2012-12-28 21:53:23
【问题描述】:
人们为什么使用 RMI,或者我应该什么时候使用 RMI?我在 oracle 的网站上阅读了有关 RMI 的那些教程。但它没有提供足够的实际例子。
据我了解,软件的模块应尽可能“不相关且分离”。在我看来,RMI 似乎是高耦合的一个例子。为什么这不是一个糟糕的编码实践?我认为客户端应该只触发指令,而对象的所有实际操作都是由服务器完成的。
【问题讨论】:
-
任何技术都会受到某种形式的耦合影响。您可以选择直接使用套接字,这是一种耦合形式 - 或者 HTTP 或 FTP - 您已经将自己缩小到协议的功能。 RMI 是一种解决方案,旨在允许传输对象和对象状态,而无需转换层。如果您只需要与其他 Java 服务进行通信,RMI 不是一个糟糕的解决方案。但是,如果您需要(或您的服务想要)使用其他语言进行交流,那么还有其他选择。这将取决于您的要求。
-
这就是它设计的目的,但它实际上并非如此。透明地序列化任意对象图的梦想早已不复存在。 RMI 真正提倡的是令人尴尬的大量样板文件,称为数据传输对象,它实际上模拟了面向文档的进程间通信,但代价是荒谬的。
-
好问题@Will。在你的整个职业生涯中不断提出这些问题,以找出所有这些只因为某些营销人员认为这是个好主意而存在的废话技术
-
IMO,你能得到的最好的徽章是它被关闭了,因为它没有建设性:D
标签: java computer-science rmi software-design anti-patterns