Мне нужно реализовать клиент-серверную архитектуру на Java, где сервер может измениться в будущем (ну, в определенный момент он точно изменится).
Каков наилучший способ учесть это возможное изменение? Вот что я подумал:
1.) Создать интерфейс для Сервера:
public interface AlarmService {
...
}
2.) Создание конкретной реализации:
public AlarmServiceImpl implements AlarmService {
...
}
3.) Напишите статическую фабрику, чтобы получить какую-то реализацию
public AlarmServiceFactory {
private AlarmService AlarmServiceFactory() {
return new AlarmServiceImpl();
}
}
Это хорошая идея? Или это слишком много? Или, может быть, я не должен принимать это изменение во внимание?