package com.xxx.proxy;
/**
* @Author 陈平安
* @Date 2022/6/14 9:03
* @PackageName:com.xxx.proxy
* @ClassName: Mary
* @Description: TODO
* @Version 1.0
*/
//定义用户行为
public interface Mary {
public void toMary();
}
package com.xxx.proxy;
/**
* @Author 陈平安
* @Date 2022/6/14 9:04
* @PackageName:com.xxx.proxy
* @ClassName: MarryCompany
* @Description: TODO
* @Version 1.0
*/
//代理人
//代表用户完成任务
//同时可以完成增强任务
public class MarryCompany implements Mary {
private Mary mary;
public MarryCompany(Mary mary) {
this.mary = mary;
}
@Override
public void toMary() {
//增强
before();
mary.toMary();
//增强
after();
}
private void after() {
System.out.println("新人百年好合...........");
}
private void before() {
System.out.println("欢迎各位来宾........");
}
}
package com.xxx.proxy;
/**
* @Author 陈平安
* @Date 2022/6/14 9:11
* @PackageName:com.xxx.proxy
* @ClassName: StaticProxy
* @Description: TODO
* @Version 1.0
*/
//测试类
public class StaticProxy {
public static void main(String[] args) {
You you = new You();
MarryCompany marryCompany = new MarryCompany(you);
marryCompany.toMary();
}
}
package com.xxx.proxy;
/**
* @Author 陈平安
* @Date 2022/6/14 9:04
* @PackageName:com.xxx.proxy
* @ClassName: You
* @Description: TODO
* @Version 1.0
*/
public class You implements Mary {
//本身用户行为要完成某些自己的任务,好比本文,尽管有婚庆公司完成婚礼的布置,但是,婚礼上,
//新人还是要去的
//所以也要完成继承任务接口,实现接口方法。
@Override
public void toMary() {
System.out.println("我要结婚了.........");
}
}