首页 > 其他 > 详细

代理模式

时间:2019-09-01 20:26:54      阅读:54      评论:0      收藏:0      [点我收藏+]

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();

}
View Code
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() + ",送你巧克力!");
    }
}
View Code
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();
    }
}
View Code
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;

}
View Code

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();

    }

}
View Code

5、github:

代理模式

原文:https://www.cnblogs.com/aibaiyang/p/11442993.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!