今天扣丁学堂Java培训之详细介绍首代理模式,首先ProxyPattern(即:代理模式),23种常用的面向对象软件的设计模式之一。 代理模式的定义:为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。 优点: (1).职责清晰 真实的角色就是实现实际的业务逻辑,不用关心其他非本职责的事务,通过后期的代理完成一件完成事务,附带的结果就是编程简洁清晰。 (2).代理对象可以在客户端和目标对象之间起到中介的作用,这样起到了的作用和保护了目标对象的作用。 (3).高扩展性 结构 一个是真正的你要访问的对象(目标类),另一个是代理对象,真正对象与代理 对象实现同一个接口,先访问代理类再访问真正要访问的对象。 案例代码 举个例子,假如说你走在大街上捡到一张小卡片,上面有一个美女头像和一个电话号码,上面写着招聘保姆请拨打该电话,于是你拨打电话,电话那头不是美女小姐姐在接电话,而是一个老大妈在接电话,跟你商量招聘保姆的价格,那这个老大妈我们可以认为是美女小姐姐的代理对象,用手动代理的方式来模拟一下。一不小心开了个车,听不懂的就算啦… 目标类和代理类所实现的接口代码 packagecom.proxy; ? publicinterfaceWorkInter{ ? voidworkInNight(doublemoney); voidworkInDay(doublemoney); ? } 目标类代码 packagecom.proxy; publicclassXJJimplementsWorkInter{ @Override publicvoidworkInNight(doublemoney){ System.out.println("滴滴滴~~~夜班干活啦"); } @Override publicvoidworkInDay(doublemoney){ //TODOAuto-generatedmethodstub System.out.println("滴滴滴~~~干活啦"); } } 代理类代码 packagecom.proxy; publicclassXJJProxyimplementsWorkInter{ privateXJJxjj; publicXJJProxy(){ xjj=newXJJ(); } @Override publicvoidworkInNight(doublemoney){ //TODOAuto-generatedmethodstub } @Override publicvoidworkInDay(doublemoney){ System.out.println("代理收取提成"+(money/2)); xjj.workInDay(money/2);//小姐姐在干活 System.out.println("完事送回家"); } } ? 测试类代码 classQiangGeTest{ publicstaticvoidmain(String[]args){ WorkInterxjjProxy=newXJJProxy();//创建代理类对象 xjjProxy.workInDay(200); } } 到这里,jdk的代理模式就分析完了,希望对爱好学习Java开发的同学有所帮助,最后想要了解更多内容的小伙伴可以登录扣丁学堂官网查看。扣丁学堂Java培训机构不仅有专业的老师和与时俱进的课程体系,还有大量的JavaEE视频教程供学员观看学习,想要了解学习Java的小伙伴快快行动吧。扣丁学堂Java技术交流群:850353792。