設計模式之-代理模式
阿新 • • 發佈:2018-11-23
一、什麼是代理模式
代理模式:為其他物件提供一種代理以控制對這個物件的訪問。簡單來說這就是給目標物件生成一個代理物件,並由代理物件控制對目標物件的引用。
我們來看下裝飾者模式的UML圖:
二、代理模式的構成
Subject(抽象主題角色):它聲明瞭真實主題和代理主題的共同介面;
Proxy(代理主題角色):實現了抽象主題,它擁有對真實主題的引用,這樣它就可以操作真實的主題物件;
RealSubject(真實主題角色):實現了抽象主題,裡面實現了具體的業務操作;
三、例項演示
我們來寫一個簡單的Demo,我們就以代購化妝品為例寫一個例子。
建立一個化妝品的介面
public interface Cosmetics {
void BuyCosmetics();
}複製程式碼
建立一個真實的主題
public class Me implements Cosmetics{
@Override
public void BuyCosmetics() {
System.out.println("我想買韓國的韓妝品,但是我沒法出國怎麼辦?");
}
}複製程式碼
代理主題角色
public class Proxy implements Cosmetics {
private Me me;
@Override
public void BuyCosmetics () {
if (me == null) {
me = new Me();
}
me.BuyCosmetics();
// 代理增強的方法
proxys();
}
public void proxys() {
System.out.println("我去幫你買吧!");
}
}複製程式碼
來寫一下測試類
public class Test {
public static void main(String[] args) {
Proxy proxy = new Proxy();
proxy.BuyCosmetics();
}
}複製程式碼
結果
四、模式總結
通過上面的介紹我們對代理模式有了一個簡單的瞭解,那麼你可能享問代理模式有哪些實際的應用呢?其實我們每天使用電腦就無時無地的在使用代理模式,我們有很多的電腦應用,問了更方便快捷的開啟應用,一般都會發送一個快捷方式到桌面,那麼這個快捷方式就是一個典型的代理模式。
那麼你還知道其他典型的代理模式嘛?