Java 高質量代碼筆記
【】盡力編寫單元測試.
Android 一般使用 JUnit,也有很多其它不同的測試框架.
看看單元測試的重要性:http://www.csdn.net/article/2012-04-10/2804366
【】強烈建議使用UTF-8編碼
【】性能考慮,數組是首選
【】線程安全的單例模式
public final class DoubleCheckedSingleton { private static DoubleCheckedSingletonsingObj = null; private DoubleCheckedSingleton(){ } public static DoubleCheckedSingleton getSingleInstance(){ if(null == singObj ) { Synchronized(DoubleCheckedSingleton.class){ if(null == singObj) singObj = new DoubleCheckedSingleton(); } } return singObj; } }
另一種方式:http://www.it165.net/pro/html/201403/11212.html
package com.troy.young.thread; /** * 線程安全的單例類 * * @author Administrator * */ public class SingleTon { /** * 定義他的構造方法,讓外部沒有辦法是用new去構造該對象 */ private SingleTon() { } /** * 定義內部類對單例進行實例化。 * 首先內部類是static的,保證了該類在內存中只有一份,同時他的成員變量是final static的,則又再次保證他的單一性。 * 同時由于JLS會保證類的線程安全。 * @author Administrator * */ private static class SingleTonHolder { public final static SingleTon instance = new SingleTon(); } /** * 提供獲取實例的方法 * @return */ public static SingleTon getInstance() { // 直接獲取內部類的變量 return SingleTonHolder.instance; } }
【】多線程使用 Vector 或 HashTable
【】使用枚舉實現 工廠方法模式 更簡潔
UML圖展示 FordCar 和 BuickCar:
DEMO:
public class Test { enum CarFactory { FordCar { public Car create() { return new FordCar(); } }, BuickCar { public Car create() { return new BuickCar(); } }; public Car create1() { switch (this) { case FordCar: return new FordCar(); case ... ... default: throw new AssertionError("無效參數"); } } public abstract Car create(); } public void test() { CarFactory.BuickCar.create(); CarFactory.BuickCar.create1(); } }
本文由用戶 y37f 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!