Spec-Zone .ru
спецификации, руководства, описания, API
|
Рассмотрите интерфейс, который Вы разработали вызванный DoIt
:
public interface DoIt { void doSomething(int i, double x); int doSomethingElse(String s); }
Предположите, что в более позднее время Вы хотите добавить третий метод к DoIt
, так, чтобы интерфейс теперь стал:
public interface DoIt { void doSomething(int i, double x); int doSomethingElse(String s); boolean didItWork(int i, double x, String s); }
Если Вы производите это изменение, все классы, которые реализуют старое DoIt
интерфейс повредится, потому что они не реализуют интерфейс больше. Программисты, полагающиеся на этот интерфейс, выступят громко.
Попытайтесь ожидать все использование для своего интерфейса и определить это полностью с начала., Учитывая, что это часто невозможно, Вы, возможно, должны создать больше интерфейсов позже. Например, Вы могли создать a DoItPlus
интерфейс, который расширяется DoIt
:
public interface DoItPlus extends DoIt { boolean didItWork(int i, double x, String s); }
Теперь пользователи Вашего кода могут хотеть продолжать использовать старый интерфейс или обновлять до нового интерфейса.