3 ms·
Why not do DCI with delegation instead of mixins?
by bascule 14y ago
Why not do DCI with delegation instead of mixins?
- davnola 14y agoBecause in general, delegation tends to lead to object schizophrenia. Specifically, SimpleDelegator will leak the original delegatee object when a delegated method returns `self`. s = "foo" d = SimpleDelegator.new s s2 = d << "bar" s2.object_id == s # true I think SimpleDelegator is really neat but totally dangerous. Doesn't this ring alarm bells with you? # delegate.rb L117 # # Returns true if two objects are considered of equal value. # def ==(obj) return true if obj.equal?(self) self.__getobj__ == obj end