:attr_accessor
有多少class
个太多,或者"右边"这些方法的数量(如果存在"正确的数字")?
所以,作为一个简单的例子,请
class Example
:attr_accessor :a, :b, :c, :d, :e, :f, :g, :h, :i, :j, :k
# instance methods here...
end
显然,有时需要大量此类变量和相应的访问者(也许您会在ActiveRecord::Model
中看到这一点);但我在根据类中实例变量的原始数量确定是否重构时,正在寻找一个体面的启发式。
非常感谢在此设计问题上突出显示和/或总结文章,演示文稿,书籍等的答案。
答案 0 :(得分:1)
在面向对象的编程中,如果服务于类的方法在许多方面往往相似,那么该类被认为具有高内聚性。在高度紧密的系统中,代码可读性和可重用性得到提高,而复杂性则易于管理。
wiki:read me
和这本书: Clean code
答案 1 :(得分:0)
我认为没有太多的属性访问器,并且没有理由重构这些代码。如果所有这些属性都被该类使用和需要,那么你可以拥有所需的所有属性。
然而,这可能是打破single responsibility principle的迹象,因此需要注意。