JAVA-线程–处理并发的思路:代理对象和真实对象
1. 含义:
代理对象和 代理对象,都必须继承同一个接口 ,重写接口的方法,然后代理对象调用真实对象,调用真实对象的方法。可以让代理对象处理真实对象实现不了的一些操作,让真实对象更专注处处理自己事务。
2. 实例代码
实现业务说明:结婚需要请婚庆公司帮忙处理婚礼的事情
public class StaticProxy {
public static void main(String[] args) {
You you=new You();
Marrycompany marrycompany=new Marrycompany(you);
marrycompany.Haapyniess();
}
}
interface Marry{
void Haapyniess();
}
//主体,你结婚
class You implements Marry{
@Override
public void Haapyniess() {
System.out.println("杨振威要结婚了,很幸福");
}
}
//代理公司主持结婚
class Marrycompany implements Marry{
private Marry target;//将接口变为一个参数
//构造器
public Marrycompany(Marry target) {//代理真实对象
this.target = target;
}
//重写继承的Marry 内的 Haapyniess方法
@Override
public void Haapyniess() {
System.out.println("我是婚庆公司帮你处理结婚的事宜");
before();
this.target.Haapyniess();//代理真实对象
after();
}
private void before(){
System.out.println("婚礼之前,布置婚礼现场,安排宾客");
}
private void after(){
System.out.println("婚礼之后,整理喜钱,还债");
}
}
3. 运行结果