生活随笔
收集整理的這篇文章主要介紹了
java设计模式-代理模式初探
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
?根據(jù)圣思園的視頻,整理的java代理模式。
代理模式的作用是:為其他對(duì)象提供一種代理以控制對(duì)這個(gè)對(duì)象的訪問。
在某些情況下,一個(gè)客戶不想或者不能直接引用另一個(gè)對(duì)象,而代理對(duì)象可以在客戶端和目標(biāo)對(duì)象之間起到中介的作用
代理模式一般涉及到的角色有
抽象角色:聲明真實(shí)對(duì)象和代理對(duì)象的共同接口
代理角色:代理對(duì)象角色內(nèi)部含有對(duì)真實(shí)對(duì)象的引用,從而可以操作真實(shí)對(duì)象,同時(shí)代理對(duì)象提供與真實(shí)對(duì)象相同的接口以便在任何時(shí)刻都能代替真實(shí)對(duì)象。同時(shí),代理對(duì)象可以在執(zhí)行真實(shí)對(duì)象操作時(shí),附加其他的操作,相當(dāng)于對(duì)真實(shí)對(duì)象進(jìn)行封裝
真實(shí)角色:代理角色所代表的真實(shí)對(duì)象,是我們最終要引用的對(duì)象
上面說的很抽象,不理解的,可以用房東找中介出租房子來理解,不多說,還是用代碼來說話吧!
//抽象對(duì)象
Java代碼
public abstract class Subject{public abstract void requset();}
public abstract class Subject
{public abstract void requset();
}
//真實(shí)對(duì)象
Java代碼
public class RealSubject extends Subject{public void requset(){System.out.println("From real subject");}}
public class RealSubject extends Subject
{public void requset() {System.out.println("From real subject");}
}
//代理對(duì)象
Java代碼
public class ProxySubject extends Subject{private RealSubject realSubject;?public void requset(){this.preRequest();?if(null == realSubject){realSubject = new RealSubject();}realSubject.requset();?this.postRequest();}?private void preRequest(){System.out.println("pre request");}?private void postRequest(){System.out.println("post request");}}
public class ProxySubject extends Subject
{private RealSubject realSubject;//代理角色內(nèi)部引用了真實(shí)角色public void requset() {this.preRequest();if(null == realSubject){realSubject = new RealSubject();}realSubject.requset();//真實(shí)角色所完成的事情this.postRequest();}//代理對(duì)象也可以定義自己的方法private void preRequest(){System.out.println("pre request");}private void postRequest(){System.out.println("post request");}
}
//測(cè)試類
Java代碼
public class Client{public static void main(String[] args){Subject subject = new ProxySubject();subject.requset();}}
public class Client
{public static void main(String[] args) {Subject subject = new ProxySubject();subject.requset();}
}
?
轉(zhuǎn)載于:https://blog.51cto.com/ajiao13/1135173
總結(jié)
以上是生活随笔為你收集整理的java设计模式-代理模式初探的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。