0
單一責任原則(SRP)是否適用於定義類的文件的文本?或者它在運行程序時適用於活動對象?這個ruby模式是否遵守單一責任原則?
我在一個項目中,我們將代碼從模型類中提取出來並放入模塊中。我們這樣做是爲了堅持單一責任。這樣
class User
include UserAttributeConverter
... lots of other code
end
module UserAttributeConverter
def convert_attributes
{ username: self.email , name: "#{self.first_name} #{self.last_name}" }
end
end
如果我們作出在運行時這樣的這種變化
class User
... lots of other code
def convert_attributes
{ username: self.email , name: "#{self.first_name} #{self.last_name}" }
end
end
的東西:
我們正在改變這一點?
user = User.find(42)
user.extend(UserAttributeConverter)
user.convert_attributes
可能需要副作用。 – jcm 2014-10-19 02:46:41
非常真實,但所有事情都是平等的,我寧願明確而不是隱含的狀態改變。給每個人自己。 – 2014-10-19 16:44:31