我正在使用 Java Swing 在 Clojure 中编写桌面 GUI 应用程序。通常,在使用 Java 时,我会根据 MVC 设计模式并使用观察者模式来设计应用程序。通过这种方式,视图与模型分离,并且两者的更改不会相互影响,从而使进一步的更改变得更加容易。
我想知道 Clojure 是否有比普通 MVC 和观察者设计模式更好的方法来解决这个问题?我是函数式编程的新手,所以我不确定如何使模型与视图分离。我需要这样做,因为应用程序将被迭代开发,并且可能会进一步出现具有挑战性的要求。
将不胜感激任何帮助。
Thanks,
Adam
当您拥有一阶函数、宏(代码即数据)和并发持久数据结构时,Java MVC 世界中的许多设计模式都会变得有点愚蠢。例如,“观察者模式”基本上只是一个设置了一些手表的代理。它从模式转变为函数调用。
如果您将状态(模型)存储在 ref 或代理中,并使您的视图成为显示该状态的函数(在函数式编程的意义上);当你的控制器成为一个函数(同样是 FP 意义上的函数),在给定旧状态和一些新输入的情况下生成新状态时,MVC 模型就会很好地发挥作用。
它有点过时了,但是 Stuart Sierra 的网格袋布局柱 http://stuartsierra.com/2010/01/05/taming-the-gridbaglayout确实帮助我开始了这个领域。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)