gpt4 book ai didi

java - 应用架构问题

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:40:56 25 4
gpt4 key购买 nike

我是面向对象系统设计的新手。我有一个简单的 Flash Cards 应用程序,但我无法找到构建系统的正确方法。该应用程序有一个简单的 GUI,其中包含问题、答案和几个按钮。问题和答案数据集存储在 Derby 嵌入式数据库中。

快速设置:
数据库类 - 处理连接、断开连接,并根据选定的过滤器返回一个 ArrayList(当前由 CardSet 对象调用)(数据库类设置为静态)
CardSet Class- 持有当前正在使用的ArrayList,持有当前的Card
卡类 - 保存闪存卡的数据(问题和答案,结合其他东西)
App 类 - 创建 GUI 并处理 Action 事件

所以这是我的问题:我想将 GUI 和应用程序逻辑分开。我认为这可能是 MVC 的一个好案例,但我不确定如何真正将它全部分开(从未使用过)。 Controller 类是否在 main 中创建,然后启动 GUI,然后创建其他类(在我的例子中是 CardSet)。那访问呢?某些东西需要是静态的吗?

另一个问题——为了处理 GUI 事件,您是否只是将其设置为调用 Controller 类中的通用方法?例如,单击“下一张卡片”按钮,它是否应该调用类似 controller.nextCardAction() 的方法?我应该尝试只使用观察者模式让 GUI 拉取数据吗?

对于初学者的问题,我深表歉意,但这是我第一次尝试使用 Java 应用程序。任何帮助都会很棒。也欢迎好的链接。我有 Head First Design Patterns 一书,但它没有足够的实例让我在我的应用程序中完全掌握它。

最佳答案

这是一个非常简单的 example and discussion这可能会有帮助。

Where would you read the DB stuff?

我希望模型保持对当前 CardSet 的引用,将其初始化为构造时的某个默认值,并在 Controller 表示用户需要新集时重新填充它。只有 CardSet 知道 Card 来自哪里或如何获得新的集合。作为对用户操作的响应, View 会向模型询问下一张或上一张卡片,并在收到它正在收听的模型的回复时更新自身。

不要将 Controller 与控件混淆: View 和 Controller 都可以管理按钮等控件。在example引用, Controller 有一个重置按钮,而 View 有一个游戏按钮面板。在您的应用程序中, Controller 可能会启动更改集,而 View 具有在一组卡片之间移动的控件。

作为引用,MVC 中的实线图是方法调用,虚线是对监听器的回调。在example引用,ObservableObserver 类提供了 update() 回调,但是 EventListenerList机制也很常见。

关于java - 应用架构问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3173346/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com