原则上好像没什么问题。。
但是。。interface 里面只有一堆属性,怪怪的啊
有啥致命的缺点吗
1
nicevar 2017-08-15 12:36:16 +08:00 1
不是太好,编译期会影响,应该不少人踩过这个坑,还有些人踩了也不知道的
但是有时候在一个已经非常复杂的工程上扩展一些功能,如果新增的常量不会变动的话,写在 interface 里面更清晰简洁,整体改动相对比较少 |
2
microhz 2017-08-15 15:21:45 +08:00
接口是行为的抽象,需不需要定义常量要看具体接口用途,例如接口的一些实现可能用到的变量的默认值。你可以参考一些主流框架例如 spring 的高层接口定义的常量是如何定义和使用的。
|
3
lowzoom 2017-08-15 15:29:57 +08:00
一直都是用 interface 定义常量集合,少写一堆修饰符,爽
|
4
3pmtea 2017-08-15 17:02:33 +08:00
从 API 设计的角度来说,不好。
因为你无法阻止其他人 new 或者 implements 你的 interface,虽然这些做法并没有什么实际意义或危害,但毕竟不符合此接口的本意。 如果用 class,则可以有许多手段来防止其他人对这个 class 名字的误用和滥用。 至于用 interface 可以少写 static final 这种事情,idea 的 live template 功能可以完美解决。 |