標籤:
【】儘力編寫單元測試.
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
【】使用枚舉實現 Factory 方法模式 更簡潔
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(); } }
Java 高品質代碼筆記