代理模式
Posted 艾白羊
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了代理模式相关的知识,希望对你有一定的参考价值。
1、代理模式:为其它对象提供一种代理以控制对这个对象的访问。一般分为三种:第一种,远程代理;
第二种,虚拟代理;第三种,安全代理。
2、题目:戴励帮好哥们卓贾易追求学妹娇娇,代卓贾易送洋娃娃,鲜花,巧克力。
3、UML:
4、代码示例:
4.1、礼物相关类:
IGiveGift接口
package com.aibaiyang.idemo.service.proxy; /** * @Author zhong guo * @Date 2019/8/30 18:18 * @description 送礼物接口 **/ public interface IGiveGift { /** * 送洋娃娃 */ void giveDolls(); /** * 送鲜花 */ void giveFlowers(); /** * 送巧克力 */ void giveChocolate(); }
PurSuit类
package com.aibaiyang.idemo.service.proxy; import lombok.Data; /** * @Author zhong guo * @Date 2019/8/30 18:22 * @description 最求者类 **/ @Data public class PurSuit implements IGiveGift{ public SchoolGril mm; public PurSuit(SchoolGril mm){ this.mm = mm; } @Override public void giveDolls() { System.out.println(mm.getName() + ",送你洋娃娃!"); } @Override public void giveFlowers() { System.out.println(mm.getName() + ",送你鲜花!"); } @Override public void giveChocolate() { System.out.println(mm.getName() + ",送你巧克力!"); } }
Proxy类
package com.aibaiyang.idemo.service.proxy; /** * @Author zhong guo * @Date 2019/8/30 18:30 * @description 代理类 **/ public class Proxy implements IGiveGift{ private PurSuit purSuit; public Proxy(SchoolGril mm){ purSuit = new PurSuit(mm); } @Override public void giveDolls() { purSuit.giveDolls(); } @Override public void giveFlowers() { purSuit.giveFlowers(); } @Override public void giveChocolate() { purSuit.giveChocolate(); } }
SchoolGril类
package com.aibaiyang.idemo.service.proxy; import lombok.Data; /** * @Author zhong guo * @Date 2019/8/30 18:23 * @description 学妹 **/ @Data public class SchoolGril { private String name; }
4.2、代理模式客户端:
package com.aibaiyang.idemo.service.proxy; /** * @Author GZ * @Date 2019/8/30 18:34 * @description 代理模式客户端 **/ public class ProxyClient { public static void main(String[] args) { //小学妹 SchoolGril mm = new SchoolGril(); mm.setName("白鹿"); //戴励 Proxy proxy = new Proxy(mm); //撩妹 proxy.giveDolls(); proxy.giveFlowers(); proxy.giveChocolate(); } }
5、github:
以上是关于代理模式的主要内容,如果未能解决你的问题,请参考以下文章