设计模式(十三)-- 代理模式

2018-12-03  本文已影响0人  信仰年輕

源代码
GitHub源代码

1.本文目标

本文目标是为了让大家认识并理解代理模式

2.基本套路

定义:为其他对象提供一种代理,以控制对这个对象的访问
类型:结构型
选择关键点:静态代理选择的关键点是是否要复用被代理的部分功能,动态代理选择的关键点在于能否在将被代理的这一批类当中,找出相同的切入点
设计原则:体现功能复用
使用概率:99.99999%
难度系数:中高

3.适用场景

1.保护目标对象
2.增强目标对象

4.使用步骤

1.代理模式有委托方和代理方
2.委托方定义接口和使用接口中的方法
3.代理方把代理对象传给委托方并实现委托方的接口,从而实现代理模式

5.举个栗子

我们用具体的代码去更好的理解这个设计模式

5.1栗子说明

5.2使用步骤

实现代码如下:
步骤1.创建委托方要定义接口(就是DataInterface)

public interface DataInterface {
    /**
     * 添加数据的方法
     */
    void  addData(AddController controller, String name);
}

步骤2.创建委托方,委托方使用接口中的方法

public class AddController {
    //定义接口
    public DataInterface mDataInterface;
    public void  addEvent(){
        //使用接口中的方法
        mDataInterface.addData(this,"黄晓明");
    }
}

步骤3.创建代理方,实现接口

public class ContactController implements  DataInterface{
    @Override
    public void addData(AddController page, String name) {
        System.out.println("ContactController 添加数据成功 "+page.toString()+ "  名字:"+ name);
    }
}

步骤4. 测试,代理方把代理对象传给委托方并实现委托方的接口,从而实现代理模式

 public static void main(String[] args) {
        AddController addController = new AddController();
        ContactController contactController = new ContactController();

        //代理方把代理对象传给委托方
        addController.mDataInterface = contactController;
        addController.addEvent();
 }

6.优点

7.缺点

8.总结

本文只是对代理模式进行一个分享,接下来会从创建型模式,结构型模式,行为型模式,这三大类展开一个系列分享,大家可以持续进行关注,信仰年輕的设计模式,蟹蟹啦。

上一篇下一篇

猜你喜欢

热点阅读