我正在阅读http://www.infoq.com/interviews/trelford-functional并试图了解 OO 的替代方法。
问:你看到你在 GOTOCon 上做关于功能架构的演讲,那是什么?我认为所有架构都是面向对象的?
A 嗯,他们不是;我想强调一个想法,即您选择的语言和平台确实会以您的思维方式影响您的架构;选择一种功能性语言或架构如何真正使系统受益。
如果我只是举一个简单的例子,比如我们编写一个零售应用程序,如果你只考虑对象和变异,那么你会认为当你构建一篮子项目时,当你添加一个项目时,你会增加数量,如果有人退回商品或取消商品,你会减少数量,你做错了。
使用零售系统,您需要跟踪实际所做的事情,以便检测欺诈行为,这是系统的关键要素之一;所以你实际上每次都添加新值,你永远不会变异。
因此,仅从我们每天与之交互的最基本系统之一来看,功能不变的风格实际上接近于您想要的架构。
如果您要在购物篮应用程序中采用更实用的样式,您会如何考虑这个问题?例如,您是否仍然有一个购物篮对象,而不是改变其内容,而是创建一个新对象或其他东西?
很多谢谢