Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 一个模块有一个状态是不是一个坏主意。。。?_Ruby_Oop_Hash_State_Behavior - Fatal编程技术网

Ruby 一个模块有一个状态是不是一个坏主意。。。?

Ruby 一个模块有一个状态是不是一个坏主意。。。?,ruby,oop,hash,state,behavior,Ruby,Oop,Hash,State,Behavior,在下面的ruby模块中,在适当的方法调用中创建并存储哈希中的对象 include 'printer' module A def create(params) temp = params @object = Printer.init(temp) #this returns a hash with a collection of objects end #{<object1>,<object2>

在下面的ruby模块中,在适当的方法调用中创建并存储哈希中的对象

include 'printer'

module A

  def create(params)
    temp = params
    @object = Printer.init(temp) #this returns a hash with a collection of objects
  end                            #{<object1>,<object2>,...}

end
还包括一个名为printer的类,该类通过调用名为init的类方法返回散列


第一:此模块是否有状态。。?如果是,为什么将状态和行为放在一起是个坏主意,这不是不可避免的吗?

不,ruby中的模块没有状态,它们只是关于行为的。类继承自模块,类是行为和状态


状态和行为当然可以是混合的,但为什么要使用模块而不是类呢?我们使用模块还是类有关系吗。。。我所寻找的只是模块中修改数据的方法。使用类的原因是,您可以使用单个实例将数据保存在其中。这意味着状态可以保持在单个代码位的本地,如果需要,您最终可以使用其他实例。如果您在模块中存储了数据,则会强制所有代码使用单个全局共享状态,这会导致模块性、可维护性和可扩展性问题。太好了,这正是我想要的。谢谢。你从哪里听说把状态和行为放在一起是个坏主意?