代理设计模式:俩个子类共同实现一个接口,其中一个子类负责真实业务实现,另外一个负责辅助业务实现。
eg:实现代理模式
interface ISubject{
//核心功能是买电脑
public void buyComputer();
}
class RealSubject implements ISubject{
public void buyComputer(){
System.out.println("买一台外星人电脑!");
}
}
class ProxySubject implements ISubject{
private ISubject subject;
//真正的业务操作
public ProxySubject(ISubject subject){
this.subject = subject;
}
public void produceComputer(){
System.out.println("生产外星人电脑");
}
public void afterSale(){
System.out.println("外星人电脑售后");
}
public void buyComputer(){
this.produceComputer();
this.subject.buyComputer();
this.afterSale();
}
}
class Factory{
public static ISubject getInstance(){
return new ProxySubject(new RealSubject());
}
}
public class Test{
public static void main(String[] args) {
ISubject subject = Factory.getInstance();
subject.buyComputer();
}
}
代理模式的本质:所有的真实业务操作都会有一个辅助的工具类(功能类)共同完成。