1
5
简单的回答是——是的,这首先违背了拥有这种包装的目的。
然而,该指南有点忽略了树的本质——真正的问题是,在提倡函数纯粹性和引用透明性的环境中管理状态依赖关系和外部数据,这是一个更基本的问题,尤其是当你看到一个庞大的代码库需要随着时间的推移而增长和改变时(如果我们看到的是一次性的一次性脚本,只需做能完成任务的事情)。更重要的是
这里我推荐的方法是将业务逻辑编写为纯函数的模块(或多个模块),并将依赖项显式地作为参数传递。这样,您就可以将依赖关系的决策推迟到调用方。这可能会一直到程序的入口点(控制台应用程序的主要功能
正如您链接到的约定所暗示的那样,这可能需要在一个纯功能模块周围有一个类包装器,但这并不是必然的结果。你很可能有一个(副作用)函数为你产生这个值,你可以只传递这个值。
通过这种方式,您可以完全控制有效的操作——您可以随时调用该函数,如果环境发生变化,您可以再次调用该函数以获取新值。代码的其余部分既不知道也不关心您输入的值是否来自有效的操作——这使得关于它的功能的推理和测试变得简单。 在其周围有一个类包装器本身不会给这些属性添加任何内容。它可能会为更多的样板提供更好的API,但这里讨论的真正问题是其他地方。 |
Eris · 纯虚拟成员有什么优势吗(除了他们可能防止的人为错误)? 2 年前 |
AJA SMBAT · 我在获取列表而不是绑定方法时遇到问题 2 年前 |
KiraHoneybee · 具有构造函数参数的模板化类 2 年前 |
amirreza870 · Python OOP-更改类文本 2 年前 |
Rocket Procd · 获取活动类实例的数量 2 年前 |
cred · 为什么我请求的变量在从另一个类调用时显示为0.0? 2 年前 |
Oliver Guy · 一个类的所有实例共享相同的值 2 年前 |