多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區(qū)平臺 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當前位置:首頁 > php框架 > 框架設計 > [置頂] 適配器角色在android中使用

[置頂] 適配器角色在android中使用

來源:程序員人生   發(fā)布時間:2015-05-29 08:08:16 閱讀次數(shù):3837次

適配器模式(Adapter):

適配器模式是1種行動模式,它可以把1個類的接口轉換成為另外一個所期待的另外一種接口,這樣可使本來因接口沒法在1起工作的兩個類能夠在1起工作了。適配器模式有類的適配器和對象的適配器兩種情勢,這里只介紹對象的適配器模式(與類適配器模式類似),下面為類的適配器(左)和對象適配器模式(右)的簡略類圖結構:

 

適配器模式所觸及的角色有適配角色、目標角色和適配器角色,具體描寫以下:

適配角色:提供需要適配轉換的接口角色。

目標角色:調用者所期待的接口。

適配器角色:把適配角色轉為目標角色的接口。

 

與之前1樣,我們一樣羅列1個實例來講明適配器模式的使用。在電商平臺中,查詢商品、查看商品詳情、添加購物車和支付是最多見不過了。假設原系統(tǒng)中已實現(xiàn)了商品的查詢、添加購物車和支付功能,查詢功能包括查詢商品、查看詳情、和計算商品總價;添加購物車包括查看詳情、商品添加購物車和支付,目前這兩個模塊功能是不協(xié)同工作的,所以下面我們將會把購物車適配成為可以與查看商品1起工作,實現(xiàn)他們的1體化操作。那末他們的詳細結構類圖以下所示:

好了,下面羅列下適配器模式的核心代碼。

目標角色(SaleShopCenter):

/**

 * @description :

 * 目標對象

 */

public interfaceSaleShopCenter {

  

   List<Sale>scanSaleItems(String pKey);

  

   SalescanSaleDetail(String pId);

  

   double calculateTotalPrice();

  

}

 

適配角色(ShoppingCart):

/**

 * @description :

 * 適配的對象

 */

public class ShoppingCart {

   private Salesale = null;

   public staticList<Sale> results =null;   // 摹擬緩存數(shù)據(jù)?

  

   public Sale scanSaleDetail(StringpId) {

      // 異步要求網(wǎng)絡

      // TODO

     

      // 這里摹擬實現(xiàn)

      sale = getSale(pId);

      return sale;

   }

  

   public voidaddSaleShoppingCart(List<Sale> sales) {

      // 異步要求網(wǎng)絡

      // TODO

     

      addCart(sales);

   }

  

   public booleanbillPay(List<Sale> sales) {

      // 異步要求網(wǎng)絡

      // TODO

     

      // 這里摹擬支付成功

      booleanpayStatus = true;

      if(null ==SaleShoppingManager.results

            ||0 > SaleShoppingManager.results.size()) {

         payStatus = false;

      }

      return payStatus;

   }

  

   private Sale getSale(StringpId) {

      if(null ==SaleShoppingManager.results

            ||0 > SaleShoppingManager.results.size()) {

         return null;

      }

     

      Salesale = null;

      for(Saleitem : SaleShoppingManager.results) {

         if(item.getpID().equals(pId)) {

            sale = item;

         }

      }

     

      return sale;

   }

  

   private voidaddCart(List<Sale> sales) {

      results = sales;

   }

}

適配器角色(SaleShoppingManager):

/**

 * @description :

 * 適配器對象角色

 */

public classSaleShoppingManager implementsSaleShopCenter {

   private ShoppingCartcart = null;

   public staticList<Sale> results =null;   // 摹擬緩存數(shù)據(jù)

 

   public SaleShoppingManager() {

      cart = new ShoppingCart();

   }

  

   @Override

   public List<Sale> scanSaleItems(StringpKey) {

      results = new ArrayList<Sale>();

      // 異步網(wǎng)絡要求

      // TODO

     

      // 這里摹擬實現(xiàn)

      results = getSales();

      return results;

   }

 

   @Override

   public Sale scanSaleDetail(StringpId) {

      return cart.scanSaleDetail(pId);

   }

 

   @Override

   public doublecalculateTotalPrice() {

      if(null ==results || 0 > results.size()) {

         return 0;

      }

 

      double totalPrice = 0;

      for(Salesale : results) {

         totalPrice += sale.getpPrice();

      }

     

      return totalPrice;

   }

  

   private List<Sale> getSales() {

      List<Sale>result = new ArrayList<Sale>();

     

      Salesale = new Sale();

      sale.setpID("0000121300");

      sale.setbID("1111232300");

      sale.setpName("襯衫-黑領");

      sale.setpPrice(123.14);

      sale.setpDescri("黑色、圓領,高端大氣!");

      result.add(sale);

     

      Salesale2 = new Sale();

      sale2.setpID("0000121311");

      sale2.setbID("1111232311");

      sale2.setpName("襯衫-黑領");

      sale2.setpPrice(123.34);

      sale2.setpDescri("黑色、圓領,高端大氣!");

      result.add(sale2);

     

      Salesale3 = new Sale();

      sale3.setpID("0000121322");

      sale3.setbID("1111232322");

      sale3.setpName("襯衫-黑領22");

      sale3.setpPrice(123.24);

      sale3.setpDescri("黑色、圓領,高端大氣!");

      result.add(sale3);

     

      return result;

   }

 

   public ShoppingCart getCart() {

      return cart;

   }

}

下面為程序的運營結果圖,后面我會上傳項目代碼,感興趣的同學可以下載跑跑。效果圖以下:

 

好了,到這里適配器模式已介紹完了。

 

點擊我下載代碼!

 

 

技術交換群:179914858

 

 

 

 

 

 

 

 

生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 中文精品久久久久国产不卡 | 国产欧美日韩一区二区三区视频 | 国产精品中文字幕在线 | 欧美日韩大尺码免费专区 | 精品日韩在线视频一区二区三区 | 亚洲黄色一区 | 噜啪啪 | 亚洲一区二区三区久久 | 日本a中文字幕 | 视色在线 | 五月天亚洲视频 | 884hutv四虎永久黄网 | 69xxxx女人免费| 一区二区三区四区在线视频 | 99久久精品国产一区二区成人 | 亚洲国产成人在线观看 | 国产免费福利片 | 久久久久久一级毛片免费无遮挡 | 久久精品中文字幕不卡一二区 | 欧美日韩大片 | 成人永久福利在线观看不卡 | 国产一区二区视频在线观看 | 亚洲天堂手机在线 | 日本视频一区二区免费播放 | 黄色网址免费 | 国产精品久久亚洲一区二区 | 中出丰满大乳中文字幕 | 国产精品亚洲综合第一区 | 欧美一级毛片生活片 | 最近免费中文字幕大全视频 | 视频一区二区三区在线观看 | 性欧美另类老妇高清 | 日韩欧美精品 | 国产精品无码专区在线观看 | 亚洲自偷 | 国产日韩精品欧美一区喷 | 男女羞羞免费视频 | 中文字幕第一页在线视频 | 欧美精品高清在线观看 | 能在线观看的一区二区三区 | 性欧美17一18sex性高清播放 |