아마도 단순한 것이 누락되었지만 Ruby의 DelegateClass
메서드를 사용하는 방법을 이해하지 못했지만, SimpleDelegator
클래스 대신 사용할 수 있습니다. 예를 들어, 다음의 모든 대부분 동일하게 작동하는 것 : DelegateClass
에 전달되는 클래스는 중요하지 않는 것 같습니다 것을SimpleDelegator 대신 Ruby DelegateClass를 사용하는 경우? (DelegateClass 메서드 대 SimpleDelegator 클래스)
require 'delegate'
a = SimpleDelegator.new([0])
b = DelegateClass(Array).new([0])
c = DelegateClass(String).new([0])
a << 1
b << 2
c << 3
p a # => [0, 1]
p b # => [0, 2]
p C# => [0, 3]
참고.
입니다. 당신은 메시지를 보내고 응답을 담당 할 수업을 알지 못합니다. 위임자는 인식 할 수없는 모든 메시지를 전달하고 응답하지 않을지 여부를 모릅니다 (그렇지 않으면 하위 클래스로 구현되거나 구성을 사용할 수 있습니까?). 원래 클래스는 더 이상 아무 것도 제어하지 못하고 그 클래스와 다른 클래스 사이에 위임자가 있다는 것을 알지 못합니다. – Alexey