首先有三要素: 1行为接口(这个例子是买水接口)2谁要买水 3 代理人帮买
1行为接口(这个例子是买水接口)
/**
* 1 购买接口
*
* @author czh
* @date 2023/5/12
*/
public interface ISubject {
/**
* 购买水方法
*/
void buyWater();
}
2谁要买水(需要水的人)
/**
* @author czh
* @date 2023/5/12 购买接口实现类
*/
@Slf4j
public class MySelf implements ISubject {
@Override
public void buyWater() {
log.info("买水");
}
}
3代理人帮买
/**
* 代理类(同事帮你购买水)
*
* @author czh
* @date 2023/5/12
*/
@Slf4j
public class Colleague implements ISubject {
private ISubject iSubject;
public Colleague(ISubject iSubject) {
this.iSubject = iSubject;
}
@Override
public void buyWater() {
iSubject.buyWater();
}
}
4调用
/**
* 代理模式
*/
@Test
void contextLoads() {
//传入要购买的对象
Colleague colleague = new Colleague(new MySelf());
//同事代理购买
colleague.buyWater();
}