日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

代理模式(Proxy)简介

發(fā)布時(shí)間:2025/3/20 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 代理模式(Proxy)简介 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

代理模式相對(duì)來講比較簡單和容易理解.


一, 代理模式(Proxy)的定義

教材里定義很簡單:

所謂代理模式, 就是為其他對(duì)象提供一種代理控制對(duì)這個(gè)對(duì)象的訪問.


上面出現(xiàn)了3個(gè)名詞:

1.其他對(duì)象

2.一種代理

3.這個(gè)對(duì)象


實(shí)際上就是:

這個(gè)對(duì)象 找了 一種代理來 避免其他對(duì)象的訪問


二, 代理模式的例子

例如有個(gè)狐貍揍1個(gè)只狗, 給它1個(gè)悶棍, 再1個(gè)上勾拳.

但是狐貍不想自己去, 是怕被尋仇.


簡單來講, 就是狐貍想揍狗, 但是不想讓狗知道狐貍要揍他.

所以狐貍找了熊來做代理...? 就是讓熊去揍狗..


熊對(duì)狐貍說: 我不會(huì)揍狗的技能啊,

狐貍對(duì)熊說: 你用我的技能就可以了.


揍狗接口 Hitable<T>:

public interface Hitable<T> {public void hit(T o); }

狗類Dog:

public class Dog {private String name;public Dog(String name){this.setName(name);}public String getName() {return name;}public void setName(String name) {this.name = name;}}

狐貍類Fox:

狐貍實(shí)現(xiàn)了揍狗接口:

public class Fox implements Hitable<Dog> {@Overridepublic void hit(Dog g){this.sap(g);this.uppercut(g);}//悶棍private void sap(Dog g){System.out.println("give " + g.getName() + " a Sap!");}//上勾拳private void uppercut(Dog g){System.out.println("give " + g.getName() + " a Uppercute!");}}
就是給狗1個(gè)悶棍 + 上鉤拳啦


熊類ProxyBear:

為了揍狗, 熊也要實(shí)現(xiàn)揍狗接口..

但是熊實(shí)際上用的是狐貍的技能來揍狗.

package proxyPattern;public class ProxyBear implements Hitable<Dog>{private Hitable<Dog> f = null;public ProxyBear(){if (null == f){f = new Fox();}}@Overridepublic void hit(Dog g){if (null != f){System.out.println("Bear hit InterDogChicke!");f.hit(g);System.out.println("Bear bite InterDogChicke!");}} }

客戶端代碼:

Dog g = new Dog("InterDogChicken");ProxyBear b = new ProxyBear();b.hit(g);

輸出:

Bear hit InterDogChicke! give InterDogChicken a Sap! give InterDogChicken a Uppercute! Bear bite InterDogChicke!


看上去就好像一只熊把狗揍了,? 隱藏了狐貍了這個(gè)存在.

也就是狗不知道實(shí)際上狐貍在揍它..


實(shí)際上, 這個(gè)模式也加入了熊自己的技能... 相當(dāng)與對(duì)狐貍技能的增強(qiáng)!


UML:





三,代理模式的一般用途

1. 遠(yuǎn)程代理:

就是未1個(gè)對(duì)象在不同的地址空間提供局部代理.? 隱藏這個(gè)對(duì)象存在與另1個(gè)地址空間的事實(shí).


2.虛擬代理:

根據(jù)需要?jiǎng)?chuàng)建開銷很大的對(duì)象, 通過虛擬代理來存放實(shí)例化需要很長時(shí)間的真實(shí)對(duì)象.


3.安全代理

用來控制對(duì)真實(shí)對(duì)象訪問的權(quán)限.(也就是本文例子, 狗只能找熊談?wù)? 不會(huì)直接找狐貍)



























總結(jié)

以上是生活随笔為你收集整理的代理模式(Proxy)简介的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。