超碰人人精品,中文字幕观看,天天躁日日躁狠狠躁喷水,日本不卡一区在线,一级片在线观看网站,午夜两性做爰免费视频,国产视频二区在线观看

JAVA設(shè)計(jì)模式之代理模式

2018-03-14 14:55:46 csdn  點(diǎn)擊量: 評(píng)論 (0)
【代理模式應(yīng)用場(chǎng)景舉例】比如在玩極品飛車(chē)這款游戲,如果游戲者手中的金錢(qián)達(dá)到了一定的數(shù)量就可以到車(chē)店買(mǎi)一部性能更高的賽車(chē),那么這個(gè)賣(mài)

代理模式應(yīng)用場(chǎng)景舉例

比如在玩“極品飛車(chē)”這款游戲,如果游戲者手中的金錢(qián)達(dá)到了一定的數(shù)量就可以到車(chē)店買(mǎi)一部性能更高的賽車(chē),那么這個(gè)賣(mài)車(chē)的“車(chē)店”就是一個(gè)典型的“汽車(chē)廠家”的“代理”,他為汽車(chē)廠家“提供賣(mài)車(chē)的服務(wù)”給有需求的人士。從面向?qū)ο蟮姆矫婵紤],“銷(xiāo)售汽車(chē)的代理”也是一個(gè)對(duì)象,那么這個(gè)對(duì)象也具有一定的狀態(tài),在軟件項(xiàng)目中這個(gè)對(duì)象也具有管理財(cái)務(wù)進(jìn)銷(xiāo)存的基本功能,那么在設(shè)計(jì)時(shí)就要以面向OOP編程的思想來(lái)考慮軟件的類(lèi)結(jié)構(gòu),這個(gè)銷(xiāo)售汽車(chē)的代理也是一個(gè)類(lèi)了。

【代理模式解釋】

類(lèi)型:結(jié)構(gòu)模式

對(duì)一些對(duì)象提供代理,以限制那些對(duì)象去訪問(wèn)其它對(duì)象。

代理模式-JAVA代碼實(shí)現(xiàn)

新建一個(gè)買(mǎi)車(chē)的接口:

[java] view plain copy
 
  1. public interface buy_car {  
  2.   public void buy_mycar();  
  3. }  


 

新建一個(gè)people人類(lèi),具有買(mǎi)車(chē)的行為,所以實(shí)現(xiàn)接口buy_car

[java] view plain copy
 
  1. class people implements buy_car {  
  2.    
  3.    private int cash;  
  4.    private String vip;  
  5.    private String username;  
  6.     
  7.  @Override  
  8.  public void buy_mycar() {  
  9.   // TODO Auto-generated method stub  
  10.   System.out.print(username+"是vip 客戶(hù),可以直接購(gòu)買(mǎi)新車(chē)!");  
  11.  }  
  12.   
  13. public int getCash(){  
  14.       return cash;  
  15.    }  
  16.    public void setCash(int cash){  
  17.        this.cash = cash;  
  18.     }  
  19.    public String getUsername(){  
  20.        return username;  
  21.     }  
  22.    public void setUsername(String username){  
  23.        this.username = username;  
  24.     }  
  25.    public String getVip(){  
  26.        return vip;  
  27.     }  
  28.    public void setVip(String vip){  
  29.         this.vip = vip;  
  30.    }  
  31. }  

people類(lèi)不能擁有車(chē),必須經(jīng)過(guò)proxy代理類(lèi)的認(rèn)證,符合條件之后才可以擁有車(chē)輛,新建一個(gè)代理,這個(gè)代理類(lèi)來(lái)考察當(dāng)前的people是否有資格進(jìn)行買(mǎi)車(chē):

[java] view plain copy
 
  1. class proxyclass implements buy_car {  
  2.      
  3.     private people people;  
  4.     public people getPeople(){  
  5.      return people;  
  6.     }  
  7.     public void setPeople(people people){  
  8.      this.people = people;  
  9.     }  
  10.       
  11.  @Override  
  12.  public void buy_mycar() {  
  13.   // TODO Auto-generated method stub  
  14.     
  15.   if (people.getVip() == "vip"){  
  16.       people.buy_mycar();  
  17.       return ;  
  18.      }   
  19.     if(people.getCash()>=50000){  
  20.      System.out.println(people.getUsername()+"買(mǎi)了新車(chē),交易結(jié)束!");  
  21.     }  
  22.     else  
  23.     {  
  24.      System.out.println(people.getUsername()+"錢(qián)不夠,不能買(mǎi)車(chē),繼續(xù)比賽!");  
  25.     }  
  26.  }  
  27. }  

最后創(chuàng)建一個(gè)客戶(hù)端,用來(lái)模擬買(mǎi)車(chē)的行為:

[java] view plain copy
 
  1. public class run_main {  
  2.   
  3.   
  4.  public static void main(String[] args) {  
  5.   // TODO Auto-generated method stub  
  6.       people people_1 =new people();  
  7.       people_1.setCash(60000);  
  8.       people_1.setUsername("jeck");  
  9.   
  10.   
  11.       people people_2 =new people();  
  12.       people_2.setCash(40000);  
  13.       people_2.setUsername("rose");  
  14.        
  15.       people people_3 =new people();  
  16.   
  17.       people_3.setCash(0);  
  18.       people_3.setUsername("tom");  
  19.       people_3.setVip("vip");  
  20.        
  21.       proxyclass proxy_buy = new proxyclass();  
  22.       proxy_buy.setPeople(people_1);  
  23.       proxy_buy.buy_mycar();  
  24.        
  25.       proxy_buy.setPeople(people_2);  
  26.       proxy_buy.buy_mycar();  
  27.        
  28.       proxy_buy.setPeople(people_3);  
  29.       proxy_buy.buy_mycar();  
  30.              
  31.  }  
  32.   
  33. }  

程序運(yùn)行結(jié)果如下:

[java] view plain copy
 
  1. jeck買(mǎi)了新車(chē),交易結(jié)束!  
  2. rose錢(qián)不夠,不能買(mǎi)車(chē),繼續(xù)比賽!  
  3. tom是vip 客戶(hù),可以直接購(gòu)買(mǎi)新車(chē)!  

 

代理模式主要使用了java的多態(tài),干活的是被代理類(lèi),代理類(lèi)主要是接活,你讓我干活,好,我交給幕后的類(lèi)去干,你滿(mǎn)意就成,那怎么知道被代理類(lèi)能不能干呢?同根就成,大家知根知底,你能做啥,我能做啥都清楚得很,同樣一個(gè)接口。

作者:jason0539

微博:http://weibo.com/2553717707

博客:http://blog.csdn.net/jason0539(轉(zhuǎn)載請(qǐng)說(shuō)明出處)

大云網(wǎng)官方微信售電那點(diǎn)事兒

責(zé)任編輯:售電衡衡

免責(zé)聲明:本文僅代表作者個(gè)人觀點(diǎn),與本站無(wú)關(guān)。其原創(chuàng)性以及文中陳述文字和內(nèi)容未經(jīng)本站證實(shí),對(duì)本文以及其中全部或者部分內(nèi)容、文字的真實(shí)性、完整性、及時(shí)性本站不作任何保證或承諾,請(qǐng)讀者僅作參考,并請(qǐng)自行核實(shí)相關(guān)內(nèi)容。
我要收藏
個(gè)贊
?