代理模式

简介: 定义:为另一个对象提供一个替身或者占位符以控制这个对象的访问。通常代理模式有三个角色1.抽象接口(定义了代理对象和真实处理事务的对象所需实现的方法)2.真实事务处理对象3.代理对象。

定义:为另一个对象提供一个替身或者占位符以控制这个对象的访问。

通常代理模式有三个角色1.抽象接口(定义了代理对象和真实处理事务的对象所需实现的方法)2.真实事务处理对象3.代理对象。

案例演示:这次采用打印机的比喻来对代理模式进行简单的解释。

1.首先定义打印机接口。

public interface DayinJi {
    //  打印文字
    void outZi();
    //  打印图片
    void outImage();
}

2.定义真实事务处理打印机对象

public class DaYnJiIml implements DayinJi{
    private static DaYnJiIml dayinji;
    //  构造私有化仅可以通过getInstance()获取唯一对象
    private DaYnJiIml(){}
    public static DaYnJiIml getInstance(){
        if(dayinji==null){
            synchronized (DaYnJiIml.class) {
                if(dayinji==null){
                    dayinji=new DaYnJiIml();
                }
            }
        }
        return dayinji;
    }
    @Override
    public void outZi() {
        // TODO Auto-generated method stub
        System.out.println("打印文字");
    }
    @Override
    public void outImage() {
        // TODO Auto-generated method stub
        System.out.println("打印图片");
    }
}

3.定义代理打印机

public class DaYinJiProxy implements DayinJi{
    private DaYnJiIml mDaYinJi;
    public DaYinJiProxy() {
        // TODO Auto-generated constructor stub
    //      获取打印机对象实例
        mDaYinJi=DaYnJiIml.getInstance();
    }
    @Override
    public void outZi() {
        // TODO Auto-generated method stub
        mDaYinJi.outZi();
    }

    @Override
    public void outImage() {
        // TODO Auto-generated method stub
        mDaYinJi.outImage();
    }

}

4.通过实现代理打印机来进行打印

public class Clint {
    public static void main(String[] args) {
        DaYinJiProxy daYinJiProxy=new DaYinJiProxy();
        daYinJiProxy.outImage();
        daYinJiProxy.outZi();
    }
}

效果展示

img_9e2665ff95517bf14cf26af952615eb5.png
效果展示
目录
相关文章
|
8月前
结构型 代理模式
结构型 代理模式
45 0
|
6月前
|
设计模式
对于装饰器模式与代理模式的个人理解
摘要: 代理模式与装饰器模式虽相似,但目的不同。装饰器动态增强对象功能,如添加新特性,而不改变原有类。代理模式则用于控制访问,如优化昂贵操作或添加辅助服务(如日志),它可能在内部初始化原对象。用法上,装饰器由外部决定是否应用,允许链式创建,而代理通常内部调用,外部直接与代理交互,被代理对象可能独立不可用。
|
8月前
|
缓存 数据安全/隐私保护 C++
【C++】—— 代理模式
【C++】—— 代理模式
代理模式——为他人做嫁衣裳
代理模式——为他人做嫁衣裳
|
8月前
|
Java Spring
代理模式
代理模式
58 0
|
Java 网络安全 Maven
代理模式的运用
代理模式的运用
69 0
|
设计模式 JavaScript
关于代理模式我所知道的
关于代理模式我所知道的
90 0
|
Java Spring
代理模式你了解多少
代理模式你了解多少
84 0
|
设计模式 缓存 监控
我学会了,代理模式
代理模式属于结构型模式,这个类型的设计模式总结出了 类、对象组合后的经典结构,将类、对象的结构和使用解耦了,花式的去借用对象。
102 0
我学会了,代理模式
|
存储 设计模式 缓存
万洋-什么是代理模式
简介: 影视导演找演员谈合作一般是不会直接找到演员本人,而是先找到演员的经纪人,先由经纪人洽谈,经纪人觉得合适的话就会与演员本人商讨合作事项,这个过程导演与演员是不直接接触的。 这里就用到了**代理模式**,导演其实想找的人是演员,但是要先找到是经纪人,再由经纪人找演员沟通。真正的价值在于演员,但是这个过程中,对于导演来说,经纪人与演员体现出了同样的价值,经纪人会全权代理演员与导演洽谈,经纪人会用自己的专业性过滤掉一些不好的合作意向,从而避免演员被频繁打扰。
134 0
万洋-什么是代理模式