假设是html页面上显示图片,如果你直接在页面上显示图片的话,是用<imgsrc=""这样的标签来实现。那这样加载时间就要等待很久。通过代理模式比如说html本身先不加载,把加载图片的任务交给代理,Javascript来做。functionimgLoadProxy(src){varimg=newImage();=src;...//通过dom操作添加到页面上}然后html页面上就不直接写img标签了。页面加载完毕后,再执行js。=function(){imgLoadProxy('');}packageproxy;//代理的目的是在达到目的之前可以做一些事情classImagProxy{//代理IImageid;publicImagProxy(IImageid){=id;}publicvoiddisplayImag(){("显示缩略图片");}publicvoidmousePress(){//();}}interfaceIImage{//面向接口编程,目的是降低代理与实际类之间的偶合publicvoiddisplayImag();}classImagDisplayimplementsIImage{//实际工作类publicvoiddisplayImag(){("显示正常图片");//非常消耗内存}}lassProxy{publicstaticvoidmain(String[]args){ImagProxyproxy=newImagProxy(newImagDisplay());//();//();//想看实际图片}}我觉得《HeadFirst设计模式》中的糖果机代理模式比较有趣,现在也让我们通过C#来实现糖果机代理模式。问题描述:现在有些分布在不同地方的糖果机(类似自动售卖机),我们要通过网络方式获得糖果机中的糖果数量和糖果机的状态。现在我们要添加三个项目分别是:、Host和Client(其中Host是WebService),,Host把我们定义售卖机方法通过网络形式发布,。:StartWithQuarters()、InsertQuarter()、TurnCrank()、EjectQuarter()和GetReport()。lStartWithQuarters()方法初始化糖果数量和修改糖果机状态。///<summary>///Startsthewithquarters.///Calcthecurrentqtyandsetmachinestate.///</summary>///<paramname="cnt">T.</param>publicvoidStartWithQuarters(t){;
糖果机代理模式 来自淘豆网www.taodocs.com转载请标明出处.