Рекомендация: Интерфейс
Интерфейсы представляют пользовательское видение системы и скрывают ее внутреннюю структуру. В этой рекомендации приведено описание правил, относящихся к спецификации интерфейсов.
Взаимосвязи
Основное описание

Присвоение имени интерфейсам Начало страницы

  • Имя интерфейса должно отражать роль, которую он выполняет в системе.
  • Имя должно быть коротким, из одного или двух слов.
  • Не добавляйте к имени слово "interface", это подразумевается самим типом элемента модели (например, interface)

Описание интерфейсов Начало страницы

  • Описание должно отражать назначение интерфейса.
  • Описание должно состоять из нескольких предложений и может составлять один небольшой абзац.
  • Описание должно не только повторять имя интерфейса, но и характеризовать его роль в системе.

Определение операций Начало страницы

  • Имя операции должно отражать результат ее выполнения.
  • В имя операции, которая задает или получает информацию, не включайте соответственно слова set и get. Это излишне. Присвойте операции имя свойства элемента модели, которое будет задано или извлечено. Операция с таким именем без параметров извлекает свойство. Операция с таким именем с параметром задает свойство.

Пример

name() возвращает имя объекта; name(aString) задает имя объекта - aString.

  • В описании операции должно быть указано, что она делает, включая ключевые алгоритмы, и какое значение она возвращает.
  • Называйте параметры операции так, чтобы указать, какая информация будет передана операции.
  • Укажите тип параметра.

Документальное оформление интерфейсов Начало страницы

Поведение, определенное интерфейсом, задано в виде набора операций. Может потребоваться дополнительная информация:

  • Способы использования операций и порядок их выполнения (см. примеры диаграмм последовательности).
  • Возможные видимые состояния элемента модели, реализующего интерфейс (иллюстрация на примере конечного автомата приведена в разделе Рекомендация: Диаграмма состояний).
  • Планы тестирования и сценарии для тестирования поведения любого элемента модели, реализующего интерфейс.

Для объединения этой информации и управления ей создайте пакет и поместите в него интерфейс и все связанные рабочие продукты.

Советы и рекомендации Начало страницы

Каждый интерфейс представляет собой "стык" внутри системы, то есть место, где систему можно разложить на компоненты и скомпилировать снова или изменить ее структуру. Интерфейсы отделяют спецификацию от проектирование и реализации. Хорошо спроектированные интерфейсы обладают следующими чертами:

  • просты в применении, предоставляют все необходимые операции, но и достаточные для выполнения только одной функции
  • легко понятны, предоставляют достаточно информации как для использования, так и для реализации интерфейса без необходимости изучения уже существующих случаев использования и реализации
  • доступны, предоставляют пользователям описание своих основных свойств без лишних подробностей об операциях

При создании интерфейса придерживайтесь следующих рекомендаций:

  • Используйте нотацию lollipop, если нужно просто указать наличие стыка в системе. В большинстве случаев это потребуется для подсистем, но не для классов.
  • Используйте расширенную нотацию class, если нужно описать детали самой службы. В большинстве случаев это потребуется для указания служб пакета или подсистемы.