第十九条:接口只用来定义方法

本文探讨了在接口中定义常量的不当做法,并提出了三种更佳实践:局部使用私有静态最终变量、枚举类型及不可实例化的工具类。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、接口的不良实现

有些程序将创建方法以外的事情,放在接口中,比如说:在接口中定义常量。

<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.*;
静态导入的缺点:因为这样写很容易让人误解该常量是属于该类的,而不是从其他类中调用的。
所以,尽量不要用静态导入,如果使用了,最好在当前类做出声明。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值