www.e4938.cn-老师你下面太紧了拔不出来,99re8这里有精品热视频免费,国产第一视频一区二区三区,青青草国产成人久久

<button id="60qo0"></button>

<strike id="60qo0"></strike>
<del id="60qo0"></del>
<fieldset id="60qo0"><menu id="60qo0"></menu></fieldset>
  • JAVA設計模式之代理模式

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

    代理模式應用場景舉例

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

    【代理模式解釋】

    類型:結構模式

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

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

    新建一個買車的接口:

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


     

    新建一個people人類,具有買車的行為,所以實現(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 客戶,可以直接購買新車!");  
    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類不能擁有車,必須經(jīng)過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()+"錢不夠,不能買車,繼續(xù)比賽!");  
    25.     }  
    26.  }  
    27. }  

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

    [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錢不夠,不能買車,繼續(xù)比賽!  
    3. tom是vip 客戶,可以直接購買新車!  

     

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

    作者:jason0539

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

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

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

    責任編輯:售電衡衡

    免責聲明:本文僅代表作者個人觀點,與本站無關。其原創(chuàng)性以及文中陳述文字和內(nèi)容未經(jīng)本站證實,對本文以及其中全部或者部分內(nèi)容、文字的真實性、完整性、及時性本站不作任何保證或承諾,請讀者僅作參考,并請自行核實相關內(nèi)容。
    我要收藏
    個贊
    ?
    夜夜添无码一区二区三区| 无码精品久久久久久人妻中字| 无码精品久久久久久人妻中字| 私密直播全婐APP免费| 国产拍揄自揄精品视频| 久久精品人妻无码| 国产精品视频一区二区噜噜| 亚洲M码欧洲S码SSS222| 亚洲中文在线看视频一区| 精品人妻少妇嫩草aⅴ无码专区|