什么是代理模式?
代理模式的定义:为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。
简单来说就是同一件事必须实现的部分同一个部分交由同一个代理来实现,而真正的业务模块可以专注于业务。
比如手机卖货,手机进货和分红这一公共部分,可以交由代理来实现,你可以专注于你的卖手机这一块业务。
1.定义一个业务接口(实现接口的好处是规范某些类)
public interface Salses {
public void salses();
}
2.定义一个代理实现了业务接口的类
public class AgentSale implements Salses{
private Salses sales;
//重载,调用该类该方法时必须是实现了业务接口的
public AgentSale(Salses sales) {
this.sales = sales;
}
public void salses() {
System.out.println("手机进货");
sales.salses();//调用实现接口的业务方法
System.out.println("分红");
}
3.定义一个实现业务接口的业务
public class oppoSale implements Salses{
//重写业务接口的方法
public void salses() {
System.out.println("卖oppo手机");
}
}
4.测试类
public class test {
public static void main(String[] args) {
AgentSale agentSale=new AgentSale(new oppoSale());
agentSale.salses();
}
}
结果为
手机进货
卖vivo手机
分红