您好,匿名用户

用函数式的 Clojure 的话, 怎么样处理原先用面向对象的设计模式处理的问题?

0 投票

刚开始看设计模式, 记得 Clojure 的报道里有吐槽过 OOP 没有证明很大的功效.
可原先很多问题不是用 OOP 的模式解决的么, 用 FP 怎么办?

用户头像 提问 2015年 1月22日 @ Dr. Mundo 中士 (1,071 威望)
分享到:

1个回答

0 投票

针对你的问题,个人觉得没有唯一正确的答案,简单谈谈我自己的看法。

OOP是近些年来被广泛所了解、应用、推崇的一种设计思想。至于这种设计思想能否覆盖所有的应用场景?未必。否则也不会出现所谓的设计模式。设计模式更多是一种面向对象的设计方法——被人们所总结、实践证明的一种行之有效的OOP设计方法。偏激一点的说,设计模式一定程度上表明了OOP设计思想的缺陷与不足。

FP实际是很早之前就有的,只不过又被炒起来的一种设计思想,更多地关注设编程计过程中的抽象性、高度内聚性、无边界效应。个人觉得这也是应现代软件开发越来越复杂的需求而生的一种简洁的设计理念。

前面吐槽了一堆,可自行略过。回到提问的问题,我的答案:不要想着用函数式编程去解决OOP来解决的问题,尽管这样肯定是可以解决的(要不然在OOP思想出现之前,哪些软件是如何开发出来的呢)。做个不恰当的比喻:这就跟筷子更适合吃中餐,刀叉适合吃西餐一样。个人觉得应该是利用合适的设计思想去做合适的事情。总之,不论是OOP还是FP,最终关注的还是数据和操作数据的方法。在这个角度来看,我们是不是更应该关注如何去进行操作抽象和方法抽象。

最后推荐一本书:Structure and Interpretation of Compu...

用户头像 回复 2015年 1月23日 @ Caitlyn 上士 (1,887 威望)
提一个问题:

相关问题

0 投票
0 回复 22 阅读
0 投票
1 回复 100 阅读
用户头像 提问 2014年 6月7日 @ Nero 上士 (1,777 威望)
0 投票
1 回复 19 阅读
用户头像 提问 2019年 5月27日 @ Yorick 中士 (1,293 威望)
0 投票
1 回复 99 阅读
用户头像 提问 2012年 12月1日 @ Xerath 中士 (1,212 威望)
0 投票
1 回复 122 阅读

欢迎来到随意问技术百科, 这是一个面向专业开发者的IT问答网站,提供途径助开发者查找IT技术方案,解决程序bug和网站运维难题等。
温馨提示:本网站禁止用户发布与IT技术无关的、粗浅的、毫无意义的或者违法国家法规的等不合理内容,谢谢支持。

IT技术交流群 - 随意问
欢迎访问随意问技术百科,为了给您提供更好的服务,请及时反馈您的意见。
...