適配器模式 在Android中的簡單理解


 

Android

在Android上提到適配器模式就會想到最常用的ListView和BaseAdapter

在這個功能的使用中,類似於適配器模式的對象適配器

例如在ListView中想用一個getView()方法,但是不同的數據,不同的需求,會有不同的getView()結果,所以getView()不能寫死了,那么可能就想到了用適配器模式

所以ListView里面包含了一個ListAdapter的成員變量,實際上是ListView繼承了AbsListView,ListAdapter變量是在AbsListView中聲明的

然后BaseAdapter是實現了ListAdapter的,那么我們自定義的***Adapter繼承了BaseAdapter,其實也就相當於間接實現了ListAdapter,並且***Adapter會具體去實現getView()方法

那么ListView就可以通過調用setAdapter(ListAdapter adapter)方法,將***Adapter傳進去,從而實現了我們想要的結果

 

Java

適配器模式有兩種:

  1. 類適配器
  2. 對象適配器

場景:

假如A類想用M方法,X類有M方法,但是M方法的結果不一定完全符合A類的需求

那么X類就是寫死了,不好用,這樣設計不好

那就把X類換成一個接口,弄出一些B,C,D,E.....類中間類出來,讓他們都有一個方法來處理M方法的東西,再給A類用

 

類適配器:

設計一個接口I,讓他也有M方法

然后設計一個B類,寫好符合A類需求的specialM方法

然后讓A類繼承B類,並實現I接口的M方法

最后在A類的M方法中以super的方式調用B類的specialM方法

 

對象適配器:(更多是用對象適配器)

設計一個接口I,讓他也有M方法

 

然后設計一個B類,寫好符合A類需求的specialM方法

然后在A類中聲明一個B類變量,並且A類實現I接口,那么A類也就有了M方法

最后在A類的M方法中,如果需要,就可以選擇調用B類的specialM方法

 

或者設計一個B類,實現I接口的M方法

然后在A類中聲明一個I類變量,再直接調用I接口的M方法

在調用A類的M方法之前,通過例如setAdapter(I Adapter)這樣的方法,將B類設置成A類的成員變量

 

這樣就保證了A類和I接口不變,適配不同情況的時候,寫一個類似B類的中間類進行適配就可以了

 

總之,兩端不變,通過不同的選擇方式,選擇不同的中間類,也就是適配器模式了

 

適配器模式參考鏈接


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM