gpt4 book ai didi

ruby - 有人说模块既有行为又有状态,这是什么意思?

转载 作者:太空宇宙 更新时间:2023-11-03 18:27:51 24 4
gpt4 key购买 nike

据我所知,我的代码审查表明我的模块同时具有行为和状态,这到底是什么意思?

这不是面向对象编程的全部要点吗,而不是使用函数直接通过逻辑电路对数据进行操作。我们选择使用一组设计巧妙的按键、开关和齿轮来操作这些封闭的黑盒(封装)。

这样的方案不会自然而然地同时包含数据(状态)和逻辑(行为)吗?

我所说的模块是指:一个真正的 Ruby 模块。

我设计了这样的东西:How to design an application keeping SOLID principles and Design Patterns in mind

并在我用来混合的模块中实现命令。

最佳答案

无论您指的是什么,无论是由类(或类型)定义的对象、模块还是任何其他包含代码的对象,state 都是数据在对事物的多次调用中持续存在。如果它“记住”了一次执行和下一次执行之间的任何事情,那么它就有了状态。

行为,otoh,是操纵或处理仅在单次代码执行期间使用的状态数据或非状态数据的代码,(就像传递给函数的参数值)。方法、子例程或函数,任何改变或做某事的东西都是行为

大多数类、类型或其他任何东西都具有数据(状态)和行为,但是......

一些类或类型只是为了携带数据而设计的。它们被称为数据传输对象或 DTO,或普通旧容器对象 (POCO)。它们只有状态,通常很少或没有行为。

其他时候,构造一个类或类型来保存通用实用函数(如数学库)。它不会在多次调用它以执行其实用程序之一之间维护或保持任何状态。其中使用的唯一数据是作为每次调用库函数的参数传入的数据,并且在例程完成时丢弃该数据。它有行为。但没有状态。

关于ruby - 有人说模块既有行为又有状态,这是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8431339/

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