- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Proxy(代理)模式
设计模式----Proxy(代理)模式
?
GOF:为其他对象提供一种代理以控制对这个对象的访问。
?
和Flyweight不一样Proxy本身就是代理的意思。对一个对象进行访问控制的原因是,当我们确实需要这个对象,或者这个对象的某些功能后才去使用它。在一个论坛系统中(比如说非常著名的“天涯社区”)来说,浏览该论坛的有两种基本用户,一种是注册用户:可以发表文章,修改自己发表的文章,删除自己的文章,回复别人的文章等。另一种是游客(非注册用户):只有看文章的权限。在这样的系统中就可以用Proxy模式来代理控制这样两种用户的权限。
?
根据我在各种参考资料上看到的内容,Proxy模式还有许多变种,他适用于很多地方。在GOF的书中,阐述了如下使用Proxy模式的情景:
1.? 远程代理(Remote Proxy):为一个对象在不同地址空间提供局部代表。
2.? 虚代理(Virtua Proxy):根据需要创建开销很大的对象。比如说,在网站上看图片,一般都先显示小图片,想看大图片的时候可以点击小图片。
3.? 保护代理(Protection Proxy):控制对原始对象的访问。保护代理用于对象应该有不同的访问权限的时候。例如我们上面提到的论坛系统。
4.? 智能指引(Smart Reference)取代了简单的指针,它在访问对象时执行一些附加操作。他的典型用途包括:对指向实际对象的引用计数,这样当该对象没有引用时,可以自动释放他(也称为Smart Pointers。这个好像在C++中有专门的讲解);当第一次引用一个持久对象时,将他装入内存;在访问一个实际对象前,检查是否已经锁定了他,以确保其他对象不能改变他。
?
举一个简单的例子来说明Proxy模式。在娱乐圈里明星要演出,要做广告这些事情都不是明星自己和商家谈,而是有一个自己的经济人,这个经济人就代理这个明星的一切外事活动。比如说和某某电影公司签约阿,或者和某厂家签约广告啊什么的。这个经济人就是个代理的脚色,他和商家谈判的时候觉得可行就让明星去演出或去拍广告,如果谈判不行他就取消该商家和该明星的联系活动,一定程度上来说他控制者明星的活动。
?
下面看简单的代码:package?Proxy;public?abstract?class?MusicPerson...{????public?abstract?void?age();????public?abstract?void?requital();//报酬????public?abstract?void?date();}//end?class?MusicPerson明星出场:package?Proxy;public?class?MusicStar?extends?MusicPerson...{????public?void?date()????...{????????System.out.println(the?music?persons?date);????}//end?f()????????public?void?requital()????...{????????System.out.println(the?music?persons?retuital);????}//end?g()????????public?void?age()????...{????????System.out.println(the?musicpersons?age);????}//end?h()????}//end?class?MusicStar代理人来了:package?Proxy;public?class?MusicStarProxy?extends?MusicPerson...{????private?MusicPerson?implementation;????????public?MusicStarProxy()????...{????????implementation?=?new?MusicStar();????}????public?void?date()?????...{?????????implementation.date();????}//end?date()????????public?void?requital()????...{?????????implementation.requital();?????}//end?requital()????????public?void?age()?????...{?//????????implementation.age();????????System.out.print
您可能关注的文档
最近下载
- SAP ERP_委外业务操作手册_v1.0.doc VIP
- 党课:2025年永葆自我革命精神在正风肃纪中砥砺前行PPT党课.pptx VIP
- 动物防疫技术 动物疫病免疫学检测技术 2动物疫病控制-实验室检测-动物疫病免疫学检测技术.ppt VIP
- 2025年兵团连队考试题库及答案.docx
- SAP上线准备策略及上线支持策略讨论纪要.doc VIP
- 四年级数学-课前三分钟讲稿-三角形和四边形-图形稳定性的应用--精品课件.ppt VIP
- 02-全员培训-U9cloud全产品介绍.pptx VIP
- 2025年《安全用电与触电急救》考试题库及答案.docx VIP
- 0301、U9 cloud财务-基础知识.pptx VIP
- 0305、U9 cloud财务-成本核算.pptx VIP
文档评论(0)