Android開發之Java設計模式基礎篇

來源:互聯網
上載者:User

  今天我們就Android開發中的一些設計模式做一些基礎性的掌握,本次就Android項目的架構設計相關內容做分析:

  1. 靜態Factory 方法

  靜態Factory 方法可以算是Factory 方法加單例模式的整合在Android平台上,由於Android的Context可以很好的傳遞執行個體,靜態Factory 方法可以提到傳統的類構造器,對於一些邏輯的服務提供類可以考慮這樣的設計,比如檔案下載、圖片裁剪等操作。

  2. Java的類存取權限

  對於程式的可靠性而言,成員變數盡量私人,通過暴漏公開的方法來訪問這些私人成員,提供類似getXXX和setXXX這樣的方法,不僅是Java,這點C#對於屬性的操作概念文件在Dot Net上已經深入人心,好處就是可以阻止繼承後的訪問換亂問題。

  3. 使用枚舉替代常量

  Java在JDK 1.5開始加入了enum枚舉類,相對於常規的final int這樣的定義一些常量更簡單安全,畢竟常量是一堆類似整形的數值,列印起來沒有過多的意義,枚舉對於繼承後訪問的清晰度可以很好的杜絕隱患發生。

  4. 使用列表優先於數組

  Java的集合類很方便,使用List類的列表在開銷上比Object [ ] 這樣的數組大,但是對於泛型的支援而言更好用強大。也可以避免一些不必要的錯誤,比如

  cwjObject [] obj= new int[1];

  obj[1] = "android開發網測試"; //這樣會在運行時拋出類似ArrayStoreException這樣的異常。

  而使用列表則為:

  List<cwjObject> obj=new ArrayList<int>();

  obj.add("android123測試"); // 由於傳入列表的是字串,和構造時類型的int不同,在編譯時間就提示錯誤,可以避免一些不必要的情況發生。

  5. Java的foreach代替for

  Java的foreach仍然使用for來寫,這點和C#直接用foreach關鍵字有點不同,但是使用方法是一樣的,除了更簡潔外,其實foreach比傳統的for更加最佳化,比如傳統的for第二個限制位,一般訪問屬性或方法,比如說

  for (int x=0;x<obj.size();x++) //這句的限制符號每次都會執行obj.size() 方法,當然Android開發網相信size()方法訪問的是一個數組的length屬性,活著是

  for (int y=0;y<obj.length;y++) //這裡同樣每次迴圈都執行obj.length對於Java VM的開銷主要由這個obj的長度決定的,而Android SDK文檔的推薦方式是

  int nSize=obj.size() 或 int nSize=obj.length

  for (int z=0;z<nSize;z++) ,但是這還不是最優的方法,下面Android123給大家更好的foreach方式的替代方法:

  for (SmartObject singleObj : SmartObjectArray)

  {

  singleObj.setName("cwj"); 或 singleObject.strName="cwj";

  }

  有關Android開發中的Java設計模式技巧,希望國內Android開發人員打好Java基礎,別紮堆實現鋪天蓋地的應用,目前不說惡意軟體問題,就大部分的軟體設計品質令人擔憂,還有很多應用基本上就是J2EE或J2SE開源項目的移植版。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.