ruby使用设计模式中的代理模式与装饰模式的代码实例

ruby使用设计模式中的代理模式与装饰模式的代码实例

ID:31192067

大小:72.00 KB

页数:3页

时间:2019-01-07

ruby使用设计模式中的代理模式与装饰模式的代码实例_第1页
ruby使用设计模式中的代理模式与装饰模式的代码实例_第2页
ruby使用设计模式中的代理模式与装饰模式的代码实例_第3页
资源描述:

《ruby使用设计模式中的代理模式与装饰模式的代码实例》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、Ruby使用设计模式中的代理模式与装饰模式的代码实例这篇文章主要介绍了Ruby使用设计模式中的代理模式与装饰模式的代码实例,代理模式与装饰模式都可以归类为结构型的设计模式,需要的朋友可以参考下代理模式需求:小明让小李替他追小丽(送洋娃娃,送花,送巧克力)没有代理的代码:#encoding:utf-8#追求者淡classPursuitattr_accessor:mmdefinitialize(mm)@mm=mmenddefgive_dollsputs”#{mm.name}送你》羊娃娃”enddefgive_flowersputsH#{mm.name}送你鲜花”enddefgive_c

2、hocolateputs"#{mm.name}送你巧克力”endend#被追求者类classGirlattr_accessor:namedefinitialize(name)@name=nameendendxiao_hong=Girl.new('小红')xiao_ming=Pursuit.new(xiao_hong)xiao_ming.give_dollsxiao_ming.give_flowersxiao_ming.give_www.visal58.comcolate只有代理的代码:#encoding:utf-8删弋理类classProxyattr_accessor:mmdefi

3、nitialize(mm)@mm=mmenddefgive_dollsputs'^{mm.name}送你洋娃娃”enddefgive_flowersputs”#{mm.name}送你鲜花”enddefgive_chocolateputs"#{mm.name}送你巧克力"endend#被追求者类classGirlattr_accessor:namedefinitialize(name)@name=nameendendxiao_hong=Girl.new('小红')xiao_ming=Proxy.new(xiao_hong)xiao_ming.give_dollsxiao_ming.g

4、ive_flowersxiao_ming.give_chocolate只是把追求者类换成了代理类。实际的代理模式代码:#encoding:utf-8-*-#公共接口modulemoduleGiveGiftdefgive_dollsenddefgive_flowersenddefgive_chocolateendend#追习《者类classPursuitineludeGiveGiftattr_accessor:mm,:namedefinitialize(mm)@mm=mmenddefgive_dollsputsH#{mm.name}替#{name}送你洋娃娃"enddefgive_f

5、lowersputsH#{mm.name}^#{name}送你鲜花"enddefgive_chocolateputs”#{mm.name}替#{name}送你巧克力”endend#K理类classProxyineludeGiveG讦tattr_accessor:ggdefinitialize(mm)@gg=Pursuit.new(mm)enddefgive_dollsgg.give_dollsenddefgive_flowersgg.give_flowersenddefgive_chocolategg.give_chocolateendend#被追求者类classGirlattr_

6、accessor:namedefinitialize(name)@name=nameendendxiao_hong=Girl.new('小红*)xiao_ming=Proxy.new(xiao_hong)xiao_ming・gg.name,xiao_ming.give_dollsxiao_ming.give_flowersxiao_ming.give_chocolate装饰模式需求:给人搭配不同的服饰代码版本一#encoding:utf-8classPersonattr_accessor:namedefinitialize(name)@name=nameenddefwear_t_s

7、hirtsputs"人T恤'enddefwear_big_trouserputs'垮裤”enddefwear_sneakersputs'破球鞋'enddefwear_suitputs'卩耳装'enddefwear_tieputs'领带,enddefwear_leather_shoesputs,皮鞋,enddefshowputs"*****装扮的#{name}"endendxc=Person.new('小菜')puts"******第一种装扮Hxc.wear_t

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。