設計模式七 代理模式

代理有很多種。靜態代理、動態代理(JDK通過接口動態代理、CGLIB通過子類動態代理)

代理模式是給莫個對象提供一個代理來控制該對象的訪問,訪問對象不適合或者不能直接引用目標對象,代理對象作爲訪問對象和目標對象之間的中介;代理模式主要側重的是通過代理類完成對目標類的調用,避免直接調用目標類;

優點:

1:客戶端和代理對象之間增加了中間起到目標對象的作用

2:代理對象可以對目標對象進行擴展

3:代理模式將使用者和調用者分開,降低了耦合度

缺點:

1:在客戶端和目標對象之間增加代理對象增加方法會降低系統訪問速度,提高了系統複雜度

代理模式分爲三個角色

抽象主題類或接口(Subject):通過接口或抽象類聲明真實主題和代理對象實現的業務方法。
真實主題(Real Subject)類:實現了抽象主題中的具體業務,是代理對象所代表的真實對象,是最終要引用的對象。
代理(Proxy)類:提供了與真實主題相同的接口,其內部含有對真實主題的引用,它可以訪問、控制或擴展真實主題的功能。

廢話不說了上實例

創建抽象主題

public interface SendMessage {

    public Boolean sendCode(String msg);
}

創建真實主題

@Component("sendPhoneMessage")
public class SendPhoneMessage implements SendMessage{

    @Override
    public Boolean sendCode(String msg) {
        System.out.println("msg");
        return null;
    }
}

創建代理類

@Component("sendMessageProxy")
public class SendMessageProx
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章