【问题标题】:How to do modularity in the existing Java application?如何在现有的 Java 应用程序中进行模块化?
【发布时间】:2014-12-11 12:55:47
【问题描述】:

我有一个非常大的 java 应用程序,其中包含相互依赖的类,正在决定将我们的大应用程序转换为模块。从这个任务开始,我想收集一些想法。

我的问题几乎和这里问的一样:How to modularize a (large) Java App?

重新问这个问题主要是因为它是 5 年前回答的。欢迎任何新的想法。

【问题讨论】:

  • 我认为答案仍然有效。一种开始的方法是为任何面向外部的系统创建外观,而不是使用您用来与外部世界通信的对象(通过肥皂、http、诸如此类),而是将值复制到内部对象。然后尝试找到系统的逻辑分界点。哪些功能组一起打开/关闭,哪些功能作为一个完全独立的子系统工作。然后是乐趣,在一大堆代码中拖网。我现在正在做类似的事情,将 1000 多行的 switch 语句分开。
  • 你是如何在不同模块之间进行交互的?

标签: java jakarta-ee modularity modular-design


【解决方案1】:

这不是这个问题的完整答案,我相信问题中的链接仍然有效。 这个答案是一些流程建议。

开始的一种方法是创建外观。最初在纸上决定模块的边界在哪里。 (哪些类是组成模块的一组类的一部分)然后创建一个外观类(取决于您使用的框架,实现单例或使用spring for ioc)然后每当您从模块外部访问一个类时,都有外部类调用外观,外观调用实际类。

如果您有一个外部类对模块类进行多次调用,那么该类属于该模块内,或者您需要将宏行为(一系列调用和交互)提取到 1 个方法中并将该方法移到外观中。

【讨论】:

  • 你是如何管理模块间依赖的?任何框架、工具等?
  • @VineetSingla 目前我正在使用 Sonar 的设计屏幕让我深入了解哪些类取决于哪些类。除此之外,我使用常识。 (我的项目不超过50万行代码,所以可以管理)
  • eclipsezone.com/articles/lattix-dsm/?source=archives 这是可比的,不知道他们具体使用了什么工具,但它可能会有所帮助
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-08-20
  • 2020-09-01
  • 2013-08-15
  • 1970-01-01
  • 2011-07-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多