내 루비 코드 Module.prepend
대신 alias_method_chain
를 사용하는 방법을 배우고, 나는 어떤 사람들은 (example)를 호출하는 send
를 사용하는 것으로 나타났습니다 :왜 사람들은`Module.send (: prepend, ...)`를 사용합니까?
ActionView::TemplateRenderer.send(:prepend,
ActionViewTemplateRendererWithCurrentTemplate)
을 다른 사람이 직접 호출하는 동안 (example) :
ActionView::TemplateRenderer.prepend(ActionViewTemplateRendererWithCurrentTemplate)
, 나는이 사람이 스타일을 사용 보지 못했다하더라도, 당신도 당신이에서 붙이는있는 모듈이 쓰기 수있는 문서에서 의심 :
module ActionViewTemplateRendererWithCurrentTemplate
# Methods you're overriding go here
prepend_features ActionView::TemplateRenderer
end
이 세 가지 스타일간에 약간의 차이가 있습니까? 다른 사람들보다 하나를 선호하는 이유가 있습니까?
아마도 #include와 #prepend는 Ruby 2.1 이전에 개인적인 방법 이었기 때문에 사람들은 '오래된 습관'때문에이 방법으로이 코드를 작성했을 것입니다. – Matheno
'prepend_features'는'prepend'에 의해 호출되고 일반적으로 직접 호출되지 않도록 의도되거나 설계되지 않은 후크 메소드입니다. –