Template Method その2
module TemplateMethod class Display def self.disp(procs) procs[:open].call procs[:_print].call procs[:close].call end end end def char_procs(str) { :open => proc { print "<" }, :_print => proc { print str * 5 }, :close => proc { puts ">" } } end procs = char_procs("H") TemplateMethod::Display.disp(procs)
Template Methods的に分かりにくくなってますよねコレ。
とりあえずprocはローカル変数を保持しています。