欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

設計模式之代理模式

系統 1868 0

[轉帖]設計模式-快餐簡解-【代理模式】

代理模式應用場景舉例

比如在玩“極品飛車”這款游戲,如果游戲者手中的金錢達到了一定的數量就可以到車店買一部性能更高的賽車,那么這個賣車的“車店”就是一個典型的“ 汽車 廠家”的“代理”,他為汽車廠家“提供賣車的服務”給有需求的人士。從面向對象的方面考慮,“銷售汽車的代理”也是一個對象,那么這個對象也具有一定的狀態,在 軟件 項目中這個對象也具有管理財務進銷存的基本功能,那么在設計時就要以面向OOP編程的思想來考慮軟件的類結構,這個銷售汽車的代理也是一個類了。

【代理模式解釋】

類型:結構模式

對一些對象提供代理,以限制那些對象去訪問 其它 對象。

代理模式UML圖

代理模式-JAVA代碼實現

新建一個買車的接口:

package buy_car_package;
public interface buy_car_package{
public void buy_car();
}

新建一個people人類,具有買車的行為,所以實現接口buy_car_package:

package buy_car_imple;

import buy_car_package.buy_car_package;
public class people implements buy_car_package{

private int cash;
private Stringusername;

public int getCash(){
return cash;
}

public void setCash( int cash){
this .cash = cash;
}

public StringgetUsername(){
return username;
}

public void setUsername(Stringusername){
this .username = username;
}
public void buy_car(){
System.out.println(username
+ " 買了一臺新車 " );
}
}

people類不能擁有車,必須經過proxy代理類的認證,符合條件之后才可以擁有車輛,新建一個代理,這個代理類來考察當前的people是否有資格進行買車:

package buy_car_imple;

import buy_car_package.buy_car_package;

public class proxy_buy_car_imple implements buy_car_package{

private peoplepeople;

public peoplegetPeople(){
return people;
}

public void setPeople(peoplepeople){
this .people = people;
}

public void buy_car(){
if (people.getCash() > 3000 ){
System.out.println(people.getUsername()
+ " " + people.getCash()
+ " 塊 買了新車 交易結束 " );
}
else {
System.out.println(people.getUsername()
+ " 金錢不夠,請繼續比賽! " );
}
}

}

最后創建一個客戶端,用來模擬買車的行為:

package run_main;

import buy_car_imple.people;
import buy_car_imple.proxy_buy_car_imple;

public class run_main{
public static void main(String[]args){
peoplepeople_ref1
= new people();
people_ref1.setCash(
4000 );
people_ref1.setUsername(
" 高洪巖 " );

peoplepeople_ref2
= new people();
people_ref2.setCash(
2000 );
people_ref2.setUsername(
" 巖洪高 " );

proxy_buy_car_impleproxy_buy_car_imple
= new proxy_buy_car_imple();
proxy_buy_car_imple.setPeople(people_ref1);
proxy_buy_car_imple.buy_car();

proxy_buy_car_imple.setPeople(people_ref2);
proxy_buy_car_imple.buy_car();

}
}

程序運行結果如下:

高洪巖花4000塊 買了新車 交易結束
巖洪高金錢不夠,請繼續比賽
!

這樣people就不可能自由的擁有車輛,必須經過proxy的認證之后才可以。

而代理模式在GOF四人幫的介紹中大體有4種使用情景:

(1)遠程代理。典型的就是客戶端與webservice使用的情況,客戶端由于是針對OOP編程,而不是針對webservice中的方法進行編程,所以得在客戶端模擬一下webservice的環境,用proxy來對webservice進行包裝,這樣就可以使用proxy代理類來遠程操作webservice了。

(2)虛擬代理。比如你要開發一個大文檔查看軟件,大文檔中有大的圖片,有可能一個圖片有100MB,在打開文件時不可能將所有的圖片都顯示出來,這樣就可以使用代理模式,當需要查看圖片時,用proxy來進行大圖片的打開。

(3) 安全 代理。其實也就是本例中所舉的買車的例子,金錢不夠不可以買車!

(4)智能指引。比如在訪問一個對象時檢測其是否被鎖定等情況。

設計模式之代理模式


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 久久久美女 | 欧美日韩午夜精品 | 日韩欧美国产网站 | 国内精品一区二区2021在线 | 欧美一级毛片在线播放 | 日本视频在线 | 夜夜操免费视频 | 2021国产精品自产拍在线 | 国产网站视频 | 久久精品免费视频观看 | 日韩一区二区三区在线观看 | 亚洲黄色色图 | 天天爱天天做天天干 | 日日操夜夜操免费视频 | 欧美激情一区二区三级高清视频 | 久草视频手机在线 | 国产精品香蕉一区二区三区 | 午夜精品一区 | 99热这里都是国产精品 | 91麻豆精东果冻天美传媒老狼 | 天天爱天天爽 | 精品欧美一区二区三区久久久小说 | 国产九色在线 | 老子午夜影院 | 日本污网站 | 亚洲欧美在线免费观看 | 成人毛片18岁女人毛片免费看 | 色婷婷久久久亚洲一区二区三区 | 欧美黑人xxxx猛牲大交 | 思瑞在线观看 | 亚洲一区二区三区久久 | 嫩草影院永久在线播放 | 神秘电影91 | 亚洲第一视频网站 | 成人国产精品 | 精品在线一区 | 亚洲精品久久久久一区二区 | 一级爱一级做a性视频 | 国产福利在线观看永久免费 | 国产日韩一区二区三区在线观看 | 亚洲国产精品综合久久网络 |