【问题标题】:How many :attr_accessor are too many for a class?一个类有多少 :attr_accessor 太多了?
【发布时间】:2015-05-30 17:56:15
【问题描述】:

对于class,有多少个:attr_accessors 太多了,或者,这种方法的“正确”数量是多少(如果存在“正确数量”这样的东西)?

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

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

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

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

【问题讨论】:

  • 那么:为什么投反对票?我很高兴被否决,但希望有理由在 cmets 中这样做。也许这个问题可以改进?

标签: ruby oop design-patterns refactoring


【解决方案1】:

在面向对象编程中,如果服务于一个类的方法在许多方面都趋于相似,那么就称该类具有高内聚性。在高度内聚的系统中,代码的可读性和可重用性得到提高,而复杂性保持在可控范围内。

维基在这里:read me

还有这本书: Clean code

【讨论】:

    【解决方案2】:

    我不认为有太多的属性访问器,也没有理由重构这样的代码。如果该类使用和需要所有这些属性,那么您可以拥有尽可能多的属性。

    但是,这可能是破坏single responsibility principle 的迹象,因此需要注意。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-03
      • 1970-01-01
      相关资源
      最近更新 更多