1. 程式人生 > >java設計模式--代理設計模式

java設計模式--代理設計模式

代理模式

  • 特點:兩個子類共同實現一個介面,其中一個子類負責真實業務實現,另外一個子類完成輔助真實業務主題的操作

舉例:

玩遊戲--介面                               買口紅--介面

真實主題類:你                         真是主題:你

代理類:代練                             代理類:代購

//抽象主題類
interface Ilipstick{
    void buyLipstick();
}
//真實主題類
class RealSubject implements Ilipstick{
    public void buyLipstick(){
        System.out.println("我要買一支口紅!");
    }
}
//代理類
class Proxy implements Ilipstick{、
    //代理所要實現的哪個類
    private RealSubject subject=null;
    //通過建構函式傳遞代理者
    public Proxy(RealSubject subject){
        this.subject=subject;
    }
    public void before(){    
        System.out.println("取錢,排隊!");
    }
    //實現介面中定義的方法
    public void buyLipstick(){
        this.before();
        subject.buyLipstick();
        this.after();
    }
    public void after(){
        System.out.println("郵遞,結束!");
    }
}
public class Test{
    public static void main(String[] args){
        Ilipstick MyProxy=new Proxy(new RealSubject());
        //MyProxy.before();
        MyProxy.buyLipstick();
        //MyProxy.after();
    }
}
  • 代理模式的本質:所有的真實業務操作都會有一個與之輔助的工具類(功能類)共同完成