gpt4 book ai didi

functional-programming - 用于函数式编程的 SOLID

转载 作者:行者123 更新时间:2023-12-03 08:48:05 25 4
gpt4 key购买 nike

我来自 OOP 语言,熟悉面向对象设计的 SOLID 原则。其中一些似乎适合函数式编程模型,而其他部分在缺乏状态的世界中毫无意义。是否有类似的重构功能代码的原则?

最佳答案

据我所知(我不是专家),SOLID 原则并没有说明任何关于状态的内容。它们也应该适用于函数式编程语言。它们是关于如何实现模块化的更多建议。

其中一些是相当明显的,或者至少是众所周知的。单一职责是 UNIX 原则“做一件事,做好”,类似地,它在广泛使用“组合”的函数式语言中更为流行。接口(interface)隔离原则也很自然(让您的接口(interface)模块化并保持正交概念分离)。最后,依赖倒置只是“抽象”的一个名称,在函数式编程中无处不在。

“OL”原则,Open/Closed 和 LSP,更倾向于基于继承作为核心软件工程概念的语言。默认情况下,函数式语言值/模块没有开放递归,因此“实现继承”仅在非常特定的情况下使用。组合物是优选的。我不确定您应该如何解释该设置中的打开/关闭原则。你可能会认为它是关于封装的,函数式程序也经常使用,使用抽象类型等。

最后,里氏替换原则似乎与继承有关。函数式语言并不总是使用子类型,但是当他们这样做时,确实假定“派生类型”应该保留“基本类型”的规范。函数式程序员当然会小心地指定和尊重他们的程序、模块等的接口(interface)和属性,并且在编程、重构、但是,一旦你摆脱了“默认继承”的想法,接口(interface)冲突的问题就会少得多,因此 LSP 不像在 OOP 中那样被强调为重要的保障。

关于functional-programming - 用于函数式编程的 SOLID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5577054/

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