0
点赞
收藏
分享

微信扫一扫

设计模式之-----代理模式(静态代理)

金刚豆 2022-01-13 阅读 80

在代理模式(Proxy Pattern)中,一个类代表另一个类的功能。这种类型的设计模式属于结构型模式。

在代理模式中,我们创建具有现有对象的对象,以便向外界提供功能接口。目的是为了保护目标对象或增强目标对象

代理模式包含如下角色:

  • Subject: 抽象主题角色
  • Proxy: 代理主题角色
  • RealSubject: 真实主题角色

静态代理:

显示声明代理对象,在编译期就生成了代理类
由程序员创建或特定工具自动生成源代码,再对其编译。在程序运行之前,代理类的类文件就已经被创建了

实现:一个公共接口、一个委托类、一个代理类
优点:简单、实用、效率高
缺点:
需要实现接口,造成代码冗余
只能对固定接口的实现类实现代理,灵活性较差

代理主题角色

public class Father {
private Son son = null;
public Father(Son son) {
this.son = son;
}
public void findLover() {
System.out.println("父母物色对象");
this.son.findLover();
System.out.println("双方同意");
}
}

抽象主题角色

public interface Person {
public void findLover();
}

真实主题角色

public class Son implements Person {
public void findLover() {
System.out.println("儿子要求:肤白貌美大长腿");
}
}

测试类

public class FatherTest {

public static void main(String[] args) {
Father father = new Father(new Son());
father.findLover();
}
}

运行结果:

举报

相关推荐

0 条评论