www涩-www黄网站-www黄色-www黄色com-国产免费拍拍视频在线观看网站-国产免费怕怕免费视频观看

JAVA設計模式之代理模式

2018-03-14 14:55:46 csdn  點擊量: 評論 (0)
【代理模式應用場景舉例】比如在玩極品飛車這款游戲,如果游戲者手中的金錢達到了一定的數量就可以到車店買一部性能更高的賽車,那么這個賣

代理模式應用場景舉例

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

【代理模式解釋】

類型:結構模式

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

代理模式-JAVA代碼實現

新建一個買車的接口:

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


 

新建一個people人類,具有買車的行為,所以實現接口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 客戶,可以直接購買新車!");  
  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類不能擁有車,必須經過proxy代理類的認證,符合條件之后才可以擁有車輛,新建一個代理,這個代理類來考察當前的people是否有資格進行買車:

[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()+"買了新車,交易結束!");  
  21.     }  
  22.     else  
  23.     {  
  24.      System.out.println(people.getUsername()+"錢不夠,不能買車,繼續比賽!");  
  25.     }  
  26.  }  
  27. }  

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

[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. }  

程序運行結果如下:

[java] view plain copy
 
  1. jeck買了新車,交易結束!  
  2. rose錢不夠,不能買車,繼續比賽!  
  3. tom是vip 客戶,可以直接購買新車!  

 

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

作者:jason0539

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

博客:http://blog.csdn.net/jason0539(轉載請說明出處)

大云網官方微信售電那點事兒

責任編輯:售電衡衡

免責聲明:本文僅代表作者個人觀點,與本站無關。其原創性以及文中陳述文字和內容未經本站證實,對本文以及其中全部或者部分內容、文字的真實性、完整性、及時性本站不作任何保證或承諾,請讀者僅作參考,并請自行核實相關內容。
我要收藏
個贊
?
主站蜘蛛池模板: 国产亚洲精品自在久久77 | 亚洲字幕波多野结衣作品 | 99久久免费看国产精品 | 国产偷国产偷亚洲高清在线 | 在线成人国产 | 在线观看免费亚洲 | 日韩欧美一区二区不卡看片 | 国产v日韩v欧美v精品专区 | 久久久青青久久国产精品 | 97精品国产91久久久久久 | 国产成人综合久久精品亚洲 | 日韩午夜在线视频不卡片 | 亚州毛片 | 黄色片日本人 | 欧美精品v欧洲精品 | 欧美视频成人 | 亚洲欧美国产高清va在线播放 | 国产成人精品一区二区 | 欧美在线高清 | 黄色美女毛片 | 国产欧美成人免费观看 | 2级毛片 | 成人黄网大全在线观看 | 欧美一级欧美三级在线观看 | 久久网免费视频 | 欧美黑大粗硬毛片视频 | 亚洲综合无码一区二区 | 99在线精品视频 | 国内精品久久久久久久久蜜桃 | 久久综合中文字幕一区二区三区 | 亚洲精品国产专区91在线 | 免费一级a毛片在线播放视 免费一级α片在线观看 | 国产精品99 | 久久成人免费网站 | 久久精品免费一区二区视 | 韩国毛片基地 | 国产欧美日韩亚洲精品区2345 | 91欧美一区二区三区综合在线 | 在线视频 国产交换 | 国产成人综合久久精品红 | 久草在线观看福利 |