Java 高質量代碼筆記

y37f 9年前發布 | 12K 次閱讀 Java Java開發

 【】盡力編寫單元測試.

  Android 一般使用 JUnit,也有很多其它不同的測試框架.

 看看單元測試的重要性:http://www.csdn.net/article/2012-04-10/2804366

Java 高質量代碼筆記

【】強烈建議使用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:

  Java 高質量代碼筆記

  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 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!