Java 构建单独的类(规范化?)

Java 构建单独的类(规范化?),java,class,Java,Class,我正在编写一个应用程序,用户可以登录其中访问(至少现在是这样)mysql数据库服务器。我认为我应该这样做的方式是为每个部分创建单独的类;示例:我有一个主窗口,其中包含用户想要执行的操作的按钮,以及每个按钮的类。ActionEvent。我在想,通过这种方式分离类,1)从长远来看更易于使用,2)更易于移植(即Windows GUI类、Android类)。我这样做对吗 当前类别 主窗口(包含用于登录、注销、检索资产列表和检索当前工单的按钮) 登录 注销(我应该将此与登录结合使用吗?) AssestL

我正在编写一个应用程序,用户可以登录其中访问(至少现在是这样)mysql数据库服务器。我认为我应该这样做的方式是为每个部分创建单独的类;示例:我有一个主窗口,其中包含用户想要执行的操作的按钮,以及每个按钮的类。ActionEvent。我在想,通过这种方式分离类,1)从长远来看更易于使用,2)更易于移植(即Windows GUI类、Android类)。我这样做对吗

  • 当前类别
  • 主窗口(包含用于登录、注销、检索资产列表和检索当前工单的按钮)
  • 登录
  • 注销(我应该将此与登录结合使用吗?)
  • AssestList(查询-返回表)
  • WorkOrderList(查询-返回可编辑的JPanel)
免责声明:这个答案只不过是粗略地看一眼MVC模式及其对您的帮助

我赞同Rob Kielty的建议,即在学习的这个阶段,您应该看看MVC模式。它将帮助您构建代码并提高可读性、模块性和可重用性。如果您计划将应用程序移植到Android上,这对您来说尤其重要

基本思想是保持应用程序的逻辑(MVC中的C[controller],隐藏的部分/类)与UI类分离/不耦合(V[iew],依赖于平台)。如果您有主要用于保存数据或状态的类,我们称它们为模型类(M[odel],如User、Stock等)

  • 控制器类应该对您的UI类几乎没有依赖关系
  • 模型类应该是独立的,因此与平台无关
  • 视图类(UI)既取决于控制器类和模型类,也取决于UI框架(AWT、Swing、JavaFX、web框架等)
简单化示例

考虑到这一点,想象一下,当应用程序启动时,您希望识别一个用户。在此阶段,控制器负责并显示登录对话框(/window/webpage)。控制器保持待机状态,等待用户操作。点击该对话框的“提交”按钮将由控制器直接处理,并可能导致用户进入下一阶段/对话框(成功登录),或导致登录对话框的UI更新,表明身份验证尝试失败。将UI关注点与逻辑关注点分开是很重要的,即点击“提交”会向控制器发送事件或调用方法,但实际的逻辑工作不会在登录对话框中完成


但请注意,无论怎样的解释和阅读都无法取代来之不易的经验。因此,不要害怕一次又一次地重温你的副本。如果你的内心是完美主义者,那就要小心了,这场战斗已经失败了。HTH

如果您对如何提问和询问内容有疑问,请访问帮助中心。目前这个问题对于本网站来说太广泛了。当你开始编码时,你会得到一个很好的回答,陷入困境,然后回来问一个关于特定代码中某个问题的特定问题。祝你项目顺利。哦,为了给你指出正确的方向,你在正确的轨道上分离你的顾虑。检查MVC并考虑编写基于REST的API来访问您的DB数据。这样,您就可以在不同的平台上编写多个客户端来访问这些数据。感谢Rob,通常当实际代码出现问题时,QnA会帮助我解决“编码”问题。这就是Stack对我如此有用的原因。目前的问题是,我想知道这是否是我编写类的方式(作为单独的类),但我在谷歌上找不到答案。我认为通常提供答案的程序员的价值可以简单地说是(单独的),或不是(组合的)。-再次感谢你的帮助。课堂是名词。不是动词
AssetList
是一个名词——一个表示有形事物的类<代码>登录和
注销
当然不是…@Boristespider-你所说的对我来说是至关重要的。如果我理解您的意思,由于Login按钮位于JDialog中,因此该类应命名为LoginDialog,并且由于logout按钮只是一个关闭连接的调用,因此它应该是主窗口中的ActionEvent。我收到了吗?很好的反馈。谢谢大家。如果可以的话,我会全部+1。我现在正在研究MVC,因为这似乎正是我想要的。这也许不是一个合适的去处,但对我来说却是。在问一个似乎太宽泛的问题时,我学到了更合适的类命名(名词,而不是动词),以及如何使代码更易于阅读和理解的清晰路径。这反过来会使我的程序结构更好,也会使我的程序格式更好,就像我实际的“编码”问题一样。谢谢今天我比昨天好多了。