##
#delegate 方法介绍,用delegate使对象更灵活
class TickSeller
def sell
return 'Here is a ticket'
end
end
#
class NoTickSeller
def sell
"Sorry-come back tomorrow"
end
end
class TicketOffice < SimpleDelegator
##
#程序初始化
def initialize
@seller = TickSeller.new
@noseller = NoTickSeller.new
end
##
#置为是否可买
def allow_sales(allow = true)
__setobj__(allow ? @seller : @noseller)
allow
end
end
t = TicketOffice.new
t.allow_sales
p t.sell
t.allow_sales(false)
p t.sell
ruby delegate pattern
最新推荐文章于 2018-11-21 11:32:28 发布