第十九條:接口只用來定義方法

一、接口的不良實現

有些程序將創建方法以外的事情,放在接口中,比如說:在接口中定義常量。

<span style="font-size:18px;">public interface FinalNumber {
	final int NUM_ONE = 1;
	final int NUM_TWO = 2;
	final int NUM_THREE = 3;
}
</span>
常量接口是對接口的不良使用。

原因:

實現了該接口的類,命名空間容易被污染。

類實現常量接口,沒有什麼價值。

二、如何實現常量

①、如果常量只在該類使用,則將該在類中設置爲
private static final String TAG = "MainActivity";
②、如果這些常量可被看做枚舉類型,就設置成枚舉
public enum Direction {
	NORTH,WEST,SOUTH,EAST;
}
③、設置爲不可實例化的工具類
public final class Utils {
	public static final int NUM_ONE = 1;
	public static final int NUM_TWO = 2;
	public static final int NUM_THREE = 3;
	
	//不可實例化
	private Utils(){
		
	}
	
}
如果需要大量調用某個工具類的常量,可以使用靜態導入方法。
我們一般使用其他類的常量都是
int  one = Utils.NUM_ONE;
每次加上Utils是不是麻煩了,我想直接這樣寫
int one = NUM_ONE;   就方便多了。
所以java提供了靜態導入方式
import static com.chen.Utils.*;
靜態導入的缺點:因爲這樣寫很容易讓人誤解該常量是屬於該類的,而不是從其他類中調用的。
所以,儘量不要用靜態導入,如果使用了,最好在當前類做出聲明。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章