以功能性风格实现对象模型是否切合实际?功能风格的对象模型?
的一个问题是OOP似乎在被描述的对象模型到Excel。例如,HTML DOM是一种复杂的有状态的野兽,其直接与UI 和需要动态语言的可编程性。 OOP的特点往往会有用在很多方面:
- 成员访问限制使非信任的代码程序接口(如JavaScript)的安全
- 存取器的功能和性能使更方便绑定到UI
- 无需一直传递对象模型使得方法变得更简单。
如果您通过MVVM投影模型,故事的UI方面可能有点模糊,但您仍然经常在内部摔跤。
我在F#工作了这个项目,所以我可以很容易地诉诸OOP,但我很好奇,它变得不切实际之前,我可以在多大程度上推动它。有没有设计模式或任何东西?
OCaml,F#,CLOS,Clojure,Haskell和Scala - 加上Erlang等其他语言中所有面向对象的成语...是的,我会说它对他们很好。 OOP不必操纵状态,主要是(在我的脑海中)组织和干预。 – 2011-04-28 08:37:12
我已经看到它与Leskah完成了,我查看了代码,但不幸的是现在它已经超出了我的范围。我也没有真正了解如何在不放弃DRY的情况下实现功能,结果难以维护的代码和/或驱使第三方插件/脚本作者疯狂。 – 2011-04-28 08:42:24
DRY在功能语言上比OO更容易,因为在FP中,将任何重复代码重构为带参数的函数是微不足道的。在OO(或者程序编程)中,重复的代码是preamble和postamble,它们与中间的位相同,不同之处在于你开始考虑关于基类或者接口,在FP中,你不是中间的位就变成了作为参数的函数。托马斯的书有这样的很好的例子:http://www.manning.com/petricek/ – Robert 2011-04-28 10:58:29