代理模式

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

}
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:

以上是关于代理模式的主要内容,如果未能解决你的问题,请参考以下文章

scrapy按顺序启动多个爬虫代码片段(python3)

用于从 cloudkit 检索单列的代码模式/片段

java代码实现设计模式之代理模式

代理模式(静态代理动态代理)代码实战(详细)

Java设计模式-代理模式之动态代理(附源代码分析)

代理模式(静态代理)