静态代理模式

描述

给一个对象提供一个代理对象,并由代理对象控制对原对象的引用。

使用场景

就是一个人或者机构代表另一个人或者机构采取行动。在一些情况下,一个客户不想或者不能够直接引用一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。

实战

同学小明晚上要完成作业,可是晚上要出去玩,于是找个同学小李帮忙写作业。作为一个班的同学,小明和小李都具备完成这个作业的能力。玩好回来后看下作业完成了没。

/**
 * 抽象对象角色
 */
public interface IStudent {
void doHomework();
}
将学生抽象出来,这里重点突出写作业的能力。用接口和抽象类皆可
/**
 * 目标对象角色
 */
public class StudentImpl implements IStudent{

@Override
public void doHomework() {
System.out.println("写作业");

}

}
具体化写作业的过程
/**
 * 代理目标角色
 */
public class StudentProxy implements IStudent{
private StudentImpl studentImpl;


public StudentProxy() {
studentImpl = new StudentImpl();

}


@Override
public void doHomework() {
System.out.println("找人帮忙写作业");

studentImpl.doHomework();

System.out.println("验收作业");

}

}
找小李帮忙写,相比自己写多了找人和验收作业的过程,但是写作业的过程由小李完成
public class MainTest {

public static void main(String[] args) {
IStudent student = new StudentProxy();

student.doHomework();

}

}
试试这次代写过程是否顺利?



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值