浅谈java的静态代理模式
要实现静态代理,首先需要满足3个条件
1.一个真实角色
2.一个代理角色:要持有真实角色的引用
3.二者必须实现相同的接口
例子:
公共的接口:
public interface Marry { void marry(); }
真实角色:
public class You implements Marry { @Override public void marry() { System.out.println("you结婚了"); } }
代理角色:
public class Company implements Marry { private Marry you; public Marry getYou() { return you; } public void setYou(Marry you) { this.you = you; } public void before(){ System.out.println("之前需要做的事情"); } public void after(){ System.out.println("之后需要干的事情"); } @Override public void marry() { before(); you.marry(); after(); } }
测试方法:
public class Demo { /** * 静态代理设计模式 * 满足的要求 * 1.真实角色 * 2.代理角色:持有真实角色的引用 * 3.二者实现相同的接口 */ public static void main(String[] args) { /** * 静态代理实现: * 1.首先声明一个真实角色的实例。 * 2.然后声明一个代理角色的实例。 * 3.将真实角色注入代理角色。 * 4.调用代理角色的方法。 */ You you = new You(); Company company = new Company(); company.setYou(you); company.marry(); } }
运行结果
之前需要做的事情 you结婚了 之后需要干的事情