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