应该将常量放在界面中吗?

don*_*ner 4 java oop design-patterns

我知道将常量放在界面中通常被认为是不好的做法,但......

我正在使用Observer模式将事件从对象广播到侦听器.

interface DownloadListener 
{
    public void sendEvent(int eventId);
}
Run Code Online (Sandbox Code Playgroud)

广播公司使用常量int来告诉听众哪个事件发生了.

class DownloadTask 
{
    public static final int EVENT_DOWNLOAD_STARTED = 1;
    public static final int EVENT_DOWNLOAD_COMPLETED = 2; //should these go here?

    DownloadTask(DownloadListener listener)
    {
        listener.sendEvent(EVENT_DOWNLOAD_STARTED);
    }
}
Run Code Online (Sandbox Code Playgroud)

将常量放在界面中会更好吗?我的想法是接口是广播公司和听众之间的契约,因此它应该包含该合同的细节(常量).

我正在开发移动设备(Java 1.3),所以很遗憾不能使用枚举类型.

Jai*_*zel 10

接口描述服务,因此如果常量是服务的描述或定义的一部分,它应该在接口中,因此该接口的每个实现都可以重用它们.在你的情况下,例如常量应该转到界面