我已经使用JGrasp大约3年了,我习惯于创建类,主类,GUI类,这些类将包含在同一个文件夹中以便编译。
现在我开始使用NetBeans,我对创建项目很陌生,创建我将使用的类的类型。
所以我的问题是……如果我要创建一个简单的项目,它涉及3个类,Person(超类),Employee(继承了Person)和Date类(与Employer类关联)。然后,我还在这个类结构之上创建了一个简单的Gui界面,以便接收基于Person详细信息和/或Employee详细信息的详细信息,然后选择在文本区域上显示它们。GUI包含2个类(UserDetails(获取详细信息)和DisplayDetails(显示详细信息)。
所有这些都包含在一个项目中吗?普通类是否包含与GUI类不同的包?
谢谢,非常感谢。
使用5个类,您可以不使用包结构。但是你也许应该开始考虑对你的程序代码进行更高层次的组织。
将数据对象放在一个包中——com.you.program.data
将您的GUI放在至少一个其他包中——com.you.program.ui
主程序可以在com.you.program或com.you.program. Main中,或者,如果它主要是启动UI,如果更容易的话,就把Main放在UI包中。
注意com。从理论上讲,你的网站是向后的,'程序'是你正在开发的程序的名称。
注意
关于是否将应用程序的业务逻辑与连接应用程序到用户的UI分开进行了理论上的讨论。这样做可以更容易地将不同的UI放在前面,并允许,例如,为在台式机/笔记本电脑上运行的用户提供Swing界面,为在平板电脑和手机上运行浏览器的用户提供Web界面。
这不是一个坏主意,隔离它的一种方法是在IDE中创建两个项目。一个保存UI层代码,一个保存业务层代码。这是一个定义良好的模式,并且运行良好。
隔离UI层和业务层的另一种方法是使用包,但IDE不会强制执行任何依赖管理。但在一个小项目中,它确实工作得很好。你必须自律。(永远不要忘记,随着时间的推移,小项目是如何成长为大项目的,而且他们是意想不到的。)
如果您使用项目,请确保在业务层项目使用UI层而没有实现定义良好的模式(可能是Observer (GOF模式))的情况下没有依赖关系。然而,UI层可以并且将依赖于业务层。您还可以在独立构建过程中使用Maven或Gradle等工具来执行此操作,它们在这方面非常出色。
无论你怎么做,你都必须考虑什么是业务逻辑。如果你在浏览器中添加一些Javascript代码,或者在Swing GUI中添加一些代码,或者在手机应用程序中添加一些代码来检查电话号码是否为该国家的有效格式,那么它可能不会对你产生影响。但是,如果您以类似的方式向前端添加代码,直接调用电话号码数据库来验证前几个数字是否有效,那么您已经越过了界限。在这些情况下,该逻辑需要在Business部分中,UI部分需要调用它来检查电话号码。这总是一个很难解决的问题,因为有很多边缘情况。