Java 高质量代码笔记-android-

 

【】代码要进行重构----大话重构或者重构-改善既有代码的设计,都可以看看.

     千万不要迷信设计模式是万能的,开始写代码只需要代码简洁,规范足以。

      时常进行代码的重构。伴随代码的曾大和需求的经常变更,代码重构的有点吃力,可以适当的加入设计模式,让代码更容易去适应改变。经过这些阶段,以后再遇到这样的代码,直接加入你已有经验,这才是万全之策。这就是不断累积经验的法门。加油!!

【】Android 动态调式工具

     andbug http://bbs.pediy.com/showthread.php?t=183412

     IDA pro

【】尽量保持代码规范统一,一点点做起.

      http://blog.csdn.net/tristansmile/article/details/7989670 

【】尽力编写单元测试.

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

 看看单元测试的重要性:http://www.csdn.net/article/2012-04-10/2804366

Java 高质量代码笔记-android-_第1张图片

【】强烈建议使用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:

  不熟悉UML的看这里(http://justsee.iteye.com/blog/808799) ,可以使用免费的 StartUml来画图.

  Java 高质量代码笔记-android-_第2张图片

  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();
 }
 
}

 【】Handler的优化:

    调用obtainMessage方法获取Message对象就能避免创建对象,从而减少内存的开销了。

    DEMO:

Message msg = mHandler.obtainMessage();
   msg.what = 1;
   mHandler.sendMessage(msg);

 

你可能感兴趣的:(Java 高质量代码笔记-android-)