日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android 文本比较 APP,一个android文本比对APP的实现(三)-设计模式在文件选择模块中的运用...

發布時間:2023/12/31 Android 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android 文本比较 APP,一个android文本比对APP的实现(三)-设计模式在文件选择模块中的运用... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

用慣了windows, 當發覺android沒有原生的文件管理器或類似模塊的時候,感覺非常不合理。android sdk似乎也沒有提供類似的組件以讓程序調用,沒辦法,也就只好自己動手做。當然,我也不是從頭開始,網上有很多朋友已經做過了,我拿過來改改,順便加了點自己的東西。先把實現的效果顯示一下:

具體實現大家可以看:http://blog.csdn.net/trbbadboy/article/details/7899424

我使用該朋友的代碼時,利用設計模式對原有設計做了改進,在實現文件選擇器時,一個問題在于文件的圖標如何顯示,在原有設計中,文件與圖標的對應關系是寫死的,偽碼如下:

if (fileExtension == "wav") {

setIcon("wav.png");

}

if (fileExtension == "txt") {

setIcon("txt.png");

}

.......

這種方法有一個問題,由于實際運用中,文件種類太多,這樣,代碼中將會有大量的if else 結構,這樣的代碼結構導致的問題是無法擴展,當有新的文件類型時,需要改動代碼,增加if else分支,當某種文件圖標由于升級而改變后,代碼需要在眾多if else 中找到相應的位置并改動,因此這種代碼模式是難以適應需求變化的,無法達到面向對象的設計中,open for extension, closed for modification 的標準,處理這種情況,最好的方法就是運用設計模式中的責任鏈模式。

為了重構 上述代碼,我們先定義一個接口,文件選擇器要獲取文件圖標時,調用接口,這樣,圖標的獲取就和文件選擇器的邏輯實現解耦合了:

public interface FileIconManager {

int getIconByExtension(String extension);

}

接著我們將上面的if 實現分別封裝到具體的類中,例如,獲取二進制文件的圖標,我們這么實現:

public class BinaryFileIcon implements FileIconManager{

public int getIconByExtension(String extension)

{

return R.drawable.binary;

}

}

獲取wav文件圖標,我們這么實現:

public class WavFileIcon extends BinaryFileIcon{

private String wavExtension = "wav";

public int getIconByExtension(String extension)

{

if (extension == wavExtension)

{

return R.drawable.wavfile;

}

else

{

return super.getIconByExtension(extension);

}

}

}

大家可以發現,如果當前文件的后綴與具體實現類中的需求不一樣,那么就把這個請求提交給他的父類,這就相當于原來代碼中,一個if不滿足,接著判斷下一個if. 于是子類和父類構成了一個處理鏈條。這么做好處比原來一對if else要好很多,一是容易擴張,如果需要添加新的圖標,例如需要再添加一個vod后綴的圖標,我們只要再重新實現一個類,然后將該類繼承于WavFileIcon即可。二是容易更改,當我們要修改某個圖標時,只要找到相應的圖標類進行修改,而不用影響其他圖標的獲取代碼,保證修改不影響程序的質量。

具體代碼的實現,大家可以下載程序代碼看看,希望大家多給予批評和指導

總結

以上是生活随笔為你收集整理的Android 文本比较 APP,一个android文本比对APP的实现(三)-设计模式在文件选择模块中的运用...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。