【发布时间】:2019-12-05 22:37:00
【问题描述】:
注意!在下面的例子中,使用一个模式可能是矫枉过正......但是,如果我将它扩展到计算流派,计算给定乐队中的成员,计算粉丝数量,计算场地数量,计算数量售出的唱片,计算特定歌曲的下载次数等...似乎有很多东西要计算。
目标:
创建一个新函数,根据输入选择正确的计数函数。
示例:
class Genre < ActiveRecord::Base
has_many :songs
has_many :artists, through: :songs
def song_count
self.songs.length
end
def artist_count
self.artists.length
end
end
附:如果您也对这个问题感到好奇,您可能会发现这个其他问题(不幸的是用 C# 回答)作为补充上下文很有帮助。 Strategy or Command pattern? ...
【问题讨论】:
-
你好像忘了问问题?
-
在这个特定的例子中,我建议使用counter cache。
-
hiphop = Genre.new; hiphop.songs.count怎么样
标签: ruby design-patterns activerecord refactoring strategy-pattern