11. リファクタリング後
https://github.com/baban/proxy/blob/master/proxy2.rb
class PrinterProxy
def initialize(name)
@printer_name = name
end
def printer_name
@real ? @real.printer_name : @printer_name
end
def method_missing( name, *_ )
@real = Printer.new(@printer_name) unless @real
return @real.send(name,*_) if @real.respond_to?(name)
end
end