标签:
【】尽力编写单元测试.
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();
}
}
标签:
原文地址:http://my.oschina.net/hailongqiu/blog/387151