Мне известно, что помещение констант в интерфейс обычно считается плохой практикой, но ...
Я использую шаблон Observer для трансляции событий от объекта к слушателю.
interface DownloadListener
{
public void sendEvent(int eventId);
}
Вещатель использует постоянные числа, чтобы сообщить слушателю, какое событие произошло.
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);
}
}
Было бы лучше разместить константы внутри интерфейса?Я думаю, что интерфейс - это контракт между вещателем и слушателем, и поэтому он должен содержать детали (константы) этого контракта.
Я занимаюсь разработкой для мобильных устройств (Java 1.3), поэтому, к сожалению, не могу использовать тип enum.