代理模式

代理模式(Proxy)概念:

為其他對象提供一種代理以控制對這個對象的訪問.
--------------------------

代理模式應用:

1.遠程代理,也就是為一個對象在不同的地址空間提供局部代表.這樣可以隱藏一個對象存在于不同地址空間的事實.
2.虛擬代理,是根據需要創(chuàng)建開銷很大的對象.通過它來存放實例化需要很長時間的真實對象.
3.安全代理晌区,用來控制真實對象訪問時的權限酪碘,一般用于對象應該有不同的訪問權限的時候
4.智能指引鸥昏,是指當調用真實的對象時岗憋,代理處理另外一些事.

我這里舉的例子結構如下:
>首先有一個總經銷商:LocalProxy
>然后我們需要一個低級經銷商GoodsProxy
>我們還需要一個柜臺去替低級經銷商代理商品擺放ShopProxy

代指總經銷商,里面提供了很多種物品購買的方法,這些商品都屬于總經銷商,總經銷商只提供接口進貨,他并不知道你賣多少錢,當然他也不是很關心你賣給誰 public interface GoodsProxy { //得到食物 void getFood(); //得到生活用品 void getSupplies(); //得到娛樂用品 void getToy(); }

上面的是"中間人"類,他只提供接口做商品代理,商品不用他自己造

普通經銷商類,指的實代理過程中的中間人,價格是由他來定的 public class LocalProxy implements GoodsProxy{ private final String TAG = LocalProxy.class.getSimpleName(); private String name; private double price; public LocalProxy(String name,double price){ this.name = name; this.price = price; } @Override public void getFood() { Log.d(TAG, "看到了"+name +"售價:"+ price +"打算購買!!"); } @Override public void getSupplies() { Log.d(TAG, "看到了"+name +"售價:"+ price+"打算購買!!"); } @Override public void getToy() { Log.d(TAG, "看到了"+name +"售價:"+ price+"打算購買!!"); } }

這個注釋寫的很顯而易見了大意就是普通經銷商定的價格

類似于普通經銷商的柜臺,顧客一去就能看到商品的價格 public class ShopProxy implements GoodsProxy{ private final String TAG = ShopProxy.class.getSimpleName(); private GoodsProxy mGoodsProxy; public ShopProxy(GoodsProxy goodsProxy){ this.mGoodsProxy = goodsProxy;} @Override public void getFood() { Log.d(TAG, "searching"); mGoodsProxy.getFood(); Log.d(TAG, "search finished"); } @Override public void getSupplies() { Log.d(TAG, "searching"); mGoodsProxy.getSupplies(); Log.d(TAG, "search finished"); } @Override public void getToy() { Log.d(TAG, "searching"); mGoodsProxy.getToy(); Log.d(TAG, "search finished"); }
這里面實際執(zhí)行的是傳進來的抽象類的實現(xiàn)類調用的方法,也就是普通經銷商定價的一個過程,具體看調用

private GoodsProxy mGoodsProxy;//創(chuàng)建一個普通經銷商的對象 mGoodsProxy = new ShopProxy(new LocalProxy("清揚洗發(fā)水", 23)); Log.d("ProxyActivity", "正在思考要買什么用的?"); mGoodsProxy.getSupplies(); Log.d("ProxyActivity", "買了清揚洗發(fā)水");

log日志顯示如下圖

Paste_Image.png

可以看到中間人代理很成功,GoodsProxy通過代理商把商品賣出去了,這就是代理模式的一種思想,提供者只負責提供你怎么用用在哪兒他并不關心,用戶也只在乎到手的產品,他不會關心產品到底是哪兒產的,出廠價多少,通過代理ShopProxy來定制規(guī)則(比如售價...),對部分內容做修改.

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子牡直,更是在濱河造成了極大的恐慌,老刑警劉巖纳决,帶你破解...
    沈念sama閱讀 219,427評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件碰逸,死亡現(xiàn)場離奇詭異,居然都是意外死亡阔加,警方通過查閱死者的電腦和手機饵史,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,551評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來胜榔,“玉大人胳喷,你說我怎么就攤上這事∝仓” “怎么了吭露?”我有些...
    開封第一講書人閱讀 165,747評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長尊惰。 經常有香客問我讲竿,道長,這世上最難降的妖魔是什么弄屡? 我笑而不...
    開封第一講書人閱讀 58,939評論 1 295
  • 正文 為了忘掉前任题禀,我火速辦了婚禮,結果婚禮上膀捷,老公的妹妹穿的比我還像新娘迈嘹。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 67,955評論 6 392
  • 文/花漫 我一把揭開白布秀仲。 她就那樣靜靜地躺著融痛,像睡著了一般。 火紅的嫁衣襯著肌膚如雪神僵。 梳的紋絲不亂的頭發(fā)上酌心,一...
    開封第一講書人閱讀 51,737評論 1 305
  • 那天,我揣著相機與錄音挑豌,去河邊找鬼。 笑死墩崩,一個胖子當著我的面吹牛氓英,可吹牛的內容都是我干的。 我是一名探鬼主播鹦筹,決...
    沈念sama閱讀 40,448評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼铝阐,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了铐拐?” 一聲冷哼從身側響起徘键,我...
    開封第一講書人閱讀 39,352評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎遍蟋,沒想到半個月后吹害,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經...
    沈念sama閱讀 45,834評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡虚青,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,992評論 3 338
  • 正文 我和宋清朗相戀三年它呀,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片棒厘。...
    茶點故事閱讀 40,133評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡纵穿,死狀恐怖,靈堂內的尸體忽然破棺而出奢人,到底是詐尸還是另有隱情谓媒,我是刑警寧澤,帶...
    沈念sama閱讀 35,815評論 5 346
  • 正文 年R本政府宣布何乎,位于F島的核電站句惯,受9級特大地震影響,放射性物質發(fā)生泄漏支救。R本人自食惡果不足惜宗弯,卻給世界環(huán)境...
    茶點故事閱讀 41,477評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望搂妻。 院中可真熱鬧蒙保,春花似錦、人聲如沸欲主。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,022評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至详恼,卻和暖如春补君,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背昧互。 一陣腳步聲響...
    開封第一講書人閱讀 33,147評論 1 272
  • 我被黑心中介騙來泰國打工挽铁, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人敞掘。 一個月前我還...
    沈念sama閱讀 48,398評論 3 373
  • 正文 我出身青樓叽掘,卻偏偏與公主長得像,于是被迫代替她去往敵國和親玖雁。 傳聞我的和親對象是個殘疾皇子更扁,可洞房花燭夜當晚...
    茶點故事閱讀 45,077評論 2 355

推薦閱讀更多精彩內容

  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現(xiàn)赫冬,斷路器浓镜,智...
    卡卡羅2017閱讀 134,671評論 18 139
  • 1 場景問題# 1.1 訪問多條數(shù)據## 考慮這樣一個實際應用:要一次性訪問多條數(shù)據。 這個功能的背景是這樣的劲厌;在...
    七寸知架構閱讀 3,007評論 1 52
  • 事例 小張是一個普普通通的碼農膛薛,每天勤勤懇懇地碼代碼。某天中午小張剛要去吃飯补鼻,一個電話打到了他的手機上相叁。“是XX公...
    余平的余_余平的平閱讀 497評論 0 0
  • 1.靜態(tài)代理 什么是代理模式辽幌? 代理模式的定義:代理模式給某一個對象提供一個代理對象增淹,并由代理對象控制對原對象的引...
    洋_6653閱讀 115評論 0 0
  • 一、 “永愛乌企,可以吃飯了嗎虑润?”爸爸隔著房門大聲問。一扇房門加酵,里邊是電視里抗戰(zhàn)片機槍掃射的聲音:“砰砰砰拳喻,噠噠噠噠...
    奶豆大人閱讀 584評論 5 4