多少:attr_accessor对于一个班级来说太多了?

时间:2015-03-26 15:55:59

标签: ruby oop design-patterns refactoring

:attr_accessor有多少class个太多,或者"右边"这些方法的数量(如果存在"正确的数字")?

所以,作为一个简单的例子,请

class Example
  :attr_accessor :a, :b, :c, :d, :e, :f, :g, :h, :i, :j, :k
  # instance methods here...
end

显然,有时需要大量此类变量和相应的访问者(也许您会在ActiveRecord::Model中看到这一点);但我在根据类中实例变量的原始数量确定是否重构时,正在寻找一个体面的启发式

非常感谢在此设计问题上突出显示和/或总结文章,演示文稿,书籍等的答案。

2 个答案:

答案 0 :(得分:1)

在面向对象的编程中,如果服务于类的方法在许多方面往往相似,那么该类被认为具有高内聚性。在高度紧密的系统中,代码可读性和可重用性得到提高,而复杂性则易于管理。

wiki:read me

和这本书: Clean code

答案 1 :(得分:0)

我认为没有太多的属性访问器,并且没有理由重构这些代码。如果所有这些属性都被该类使用和需要,那么你可以拥有所需的所有属性。

然而,这可能是打破single responsibility principle的迹象,因此需要注意。