慢慢说设计模式:代理模式

292 阅读1分钟

小Q:什么是设计模式

慢慢:设计模式是系统服务设计中针对常见场景的一种解决方案,可以解决功能逻辑开发中遇到的共性问题。设计模式并不局限最终的实现方案,而是在这种概念模式下,解决系统设计中的代码逻辑问题。

小Q:什么是代理模式

慢慢:代理模式是为了方便访问某些资源,使对象更加易用,从而在操作上使用代理服务。例如经纪人负责演员的日常对接事务,让演员专心演戏,这就是代理。

小Q:能不能上代码呢?

慢慢:好的,我们以演员为例。

public interface Actor {
    String name;
    void act();
}
public class Yangyang implements Actor {
    
    public Yangyang(String name) {
        this.name = name;
    }

    public void act() {
        System.out.print(name + "演戏");
    }
}
// 经纪人
public class Proxy {
    Actor yangyang;
    
    public Proxy(Actor actor) {
        this.actor = actor;
    }

    public void notice() {
        System.out.println("经纪人给" + actor.name + "接通告。");
        yangyang.act();
    }
}
public class Demo {
    public static void main(String[] args) {
        Proxy proxy = Proxy(new Yangyang("杨洋"));
        proxy.notice();
    }
}

小Q:代理模式和装饰器模式的区别是什么呢?

慢慢:两者都是对自身功能进行扩展。而代理模式是让别人进行扩展,并对我进行调用。而装饰器是自身进行扩展,虽然也新建了一个类,但是继承原先类,并将方法重写以及调用父方法。