码迷,mamicode.com
首页 > 其他好文 > 详细

代理模式

时间:2019-09-01 18:43:40      阅读:88      评论:0      收藏:0      [点我收藏+]

标签:oid   rip   uml   技术   sch   code   远程   show   class   

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:

代理模式

标签:oid   rip   uml   技术   sch   code   远程   show   class   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!