0

我已经使用 JGrasp 大约 3 年了,我用它来创建类、主类、GUI 类,这些类将包含在同一个文件夹中以便编译。

现在我开始使用 NetBeans,而且我对创建项目、创建我将使用的类类型非常陌生。

所以我的问题是.. 如果我要创建一个简单的项目,它涉及 3 个类,Person(超类)、Employee(继承 Person)和 Date 类(与 Employer 类相关联)。

然后,我还在这个类结构之上创建了一个简单的 Gui 界面,以便根据个人详细信息和/或员工详细信息获取详细信息,然后选择在文本区域显示它们。GUI 包含 2 个类(UserDetails(获取详细信息)和 DisplayDetails(显示详细信息)。

所有这些都包含在 1 个项目中吗?普通类是否包含在与 GUI 类不同的包中?

谢谢,非常感谢。

4

1 回答 1

0

使用 5 个类,您可以在没有包结构的情况下度过难关。但是您可能会开始考虑对您的程序代码进行更高级别的组织。

将您的数据对象放在一个包中--com.you.program.data

将您的 GUI 至少放在另一个包中——com.you.program.ui

主程序可以在 com.you.program 或 com.you.program.main 中,或者,如果它更简单,如果它主要只是启动 UI,则只需将主程序放在 UI 包中。

请注意,com.you 理论上是您的网站,而“程序”是您正在处理的程序的名称。

笔记

关于是否将应用程序的业务逻辑与将其连接到用户的 UI 分开存在一个理论讨论。这样做可以更轻松地将不同的 UI 放在事物的前面,并允许在桌面/笔记本电脑上运行的用户使用 Swing 界面,为在平板电脑和手机上运行浏览器的用户提供 Web 界面。

这不是一个坏主意,隔离它的一种方法是在您的 IDE 中创建两个项目。一个保存 UI 层代码,一个保存业务层代码。这是一个定义明确的模式并且效果很好。

隔离 UI 和业务层的另一种方法是使用包,但 IDE 不会强制执行任何依赖项管理。但在一个小项目上,它确实运作良好。你必须遵守纪律。(永远不要忘记小项目是如何随着时间的推移变成大项目的,而且他们会出人意料地做到这一点。)

如果您使用项目,请确保在业务层项目使用 UI 层时没有依赖关系,而没有实现定义良好的模式,可能是观察者(GOF 模式)。然而,UI 层可以并且将依赖于业务层。您还可以在独立构建过程中使用擅长此功能的工具(如 Maven 或 Gradle)强制执行此操作。

不管你怎么做,你都要思考什么是业务逻辑。如果您将一些 Javascript 代码添加到浏览器或将一些代码添加到 Swing GUI 或电话应用程序以检查电话号码是否是该国家/地区的有效格式,它可能不会咬你。但是,如果您以类似的方式将代码添加到前端,直接调用电话号码数据库以验证前几位数字是否有效,那么您已经越界了。在这些情况下,该逻辑需要在业务部分中,并且 UI 部分需要调用它来检查该电话号码。对于许多边缘情况,这始终是一个难以解决的问题。

于 2013-03-29T18:25:55.843 回答