当前位置: 首页 > 面试题库 >

我应该如何构造Java应用程序,将类放在哪里?

姜淇
2023-03-14
问题内容

首先,我知道如何构建Java应用程序。但是我总是对在哪里上课感到困惑。支持以严格面向领域的方式组织软件包的支持者,其他支持者则按层分开。

我本人一直有问题

  • 命名,
  • 放置

所以,

  1. 您将域特定的常量放在哪里(以及此类的最佳名称是什么)?
  2. 您在哪里放置基础结构和领域特定的东西的类(例如,我有一个FileStorageStrategy类,该文件将文件存储在数据库中,或者存储在数据库中)?
  3. 在哪里放置例外?
  4. 有什么我可以参考的标准吗?

问题答案:

我真的很喜欢Maven的Standard Directory
Layout

对我来说,关键思想之一是拥有两个源根-一个用于生产代码,一个用于测试代码,如下所示:

MyProject/src/main/java/com/acme/Widget.java
MyProject/src/test/java/com/acme/WidgetTest.java

(在这里,src / main / java和src / test / java都是源根)。

优点:

  • 您的测试具有对被测类的包(或“默认”)级别访问权限。
  • 通过将src / test / java删除为源根,可以轻松地仅将生产源打包到JAR中。

关于类放置和包的一条经验法则:

一般来说,结构良好的项目将没有循环依赖。了解什么时候他们是坏的(当它们是不是),并考虑像一个工具JDepend或SonarJ这将帮助你消除它们。



 类似资料:
  • 问题内容: 我使用netfishs 6.7.1和glassfish v2.1编写了一个Web服务项目,将log4j.properties放入项目的根目录并使用: 在构造函数中: 在功能上: 但是,这是错误信息(实际上,我已经尝试将它几乎可以实现的每个目录都放入): 问题答案: 我知道回答这个问题有点晚了,也许您已经找到了解决方案,但是我将发布我找到的解决方案(在我进行大量Google搜索之后),因

  • 问题内容: 关于组织单元测试,我有两个问题。 我是否必须将测试放在与测试类相同的程序包中,或者可以在不同程序包中组织测试? 例如,如果我具有 有效性 和 其他 测试,即使它们属于同一班级,将它们分成不同的包是否正确? 模拟和存根类呢?我应该将它们与仅包含测试的软件包分开,还是放在一起? 问题答案: 我们执行JUnit测试用例的方法是将它们放在相同的包中,但放在不同的根目录中。由于我们使用Maven

  • 我知道JVM使用属性在运行时定位本机库。我试图用本机依赖项位置配置Eclipse。 但是在中有许多地方我可以指定位置。 源选项卡->本机库位置 null null 如果它们都指向同一个目的地,为什么会有这么多配置项? 到目前为止,我的猜测是,Eclipse的设计者希望这种方式能够帮助程序员更有逻辑地组织他们的本机库。

  • 问题内容: 我正在写一个Java库,实际上是一个Clojure库,但是对于这个问题,重要的是它在JVM上运行。该库需要执行一些JavaScript。我尝试过Nashorn,但遇到了一些局限性,可能难以克服。另外,我想尝试NodeJS。 我希望我的库是独立的,不依赖于独立运行NodeJS的系统,因此需要一种特殊的部署机制将Java和NodeJS工件放置在正确的位置,以便由两个不同的网络服务器接收。但

  • 问题内容: 实用程序函数在Django中应该存放在哪里?诸如自定义加密/解密数字,发送推文,发送电子邮件,验证对象所有权,自定义输入验证等功能。我在应用程序中的多个位置使用了重复性和自定义内容。我现在肯定要打破DRY。 我看到了一些演示,其中在models.py中定义了函数,尽管从概念上看这对我来说并不正确。他们是否应该使用导入到我的项目中的“实用程序”应用程序?如果是这样,它们在实用程序应用程序

  • 我正在开发一个Java的Web应用程序,它需要将上传的文件存储在一个目录中,并将嵌入式Neo4j数据库存储在另一个目录中。我正在将warfile部署到Tomcat以服务于应用程序,并且应用程序需要在Linux或Windows中的Tomcat下运行。 我应该把这两个目录放在主机系统的文件系统的什么位置? 我很困惑,因为我习惯于将信息存储在通过URL等指定的数据库中。感谢您的帮助。