gpt4 book ai didi

model-view-controller - Clojure 模型- View - Controller (MVC) 设计

转载 作者:行者123 更新时间:2023-12-04 03:05:11 32 4
gpt4 key购买 nike

我正在使用 Java Swing 在 Clojure 中编写桌面 GUI 应用程序。通常在使用 Java 时,我也会根据 MVC 设计模式使用观察者模式来设计应用程序。通过这种方式, View 与模型分离,并且两者中的任何一个更改都不会相互影响,从而使更改更容易进行。

我想知道 Clojure 是否有比普通 MVC 和观察者设计模式更好的方法来解决这个问题?我是函数式编程的新手,所以我不确定如何使模型与 View 分开。我需要这个,因为应用程序将被迭代开发,并且可能会出现具有挑战性的要求。

将不胜感激任何帮助。

谢谢,

亚当

最佳答案

当您拥有一阶函数、宏(代码即数据)和并发持久数据结构时,Java MVC 世界中的许多设计模式都会变得有点愚蠢。例如,“观察者模式”基本上只是一个设置了一些 watch 的代理。它从一个模式转变为一个函数调用。

如果您将状态(模型)存储在 ref 或代理中,并使您的 View 成为显示该状态的函数(在这个词的函数式编程意义上);同时使您的 Controller 成为一个函数(再次在 FP 意义上),在给定旧状态和一些新输入的情况下产生一个新状态,然后 MVC 模型很好地退出。

它有点过时了,但 Stuart Sierra 的 grid bag layout post真的帮助我开始在这个领域。

关于model-view-controller - Clojure 模型- View - Controller (MVC) 设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8902113/

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