-
Имя интерфейса должно отражать роль, которую он выполняет в системе.
-
Имя должно быть коротким, из одного или двух слов.
-
Не добавляйте к имени слово "interface", это подразумевается самим типом элемента модели (например,
interface)
-
Описание должно отражать назначение интерфейса.
-
Описание должно состоять из нескольких предложений и может составлять один небольшой абзац.
-
Описание должно не только повторять имя интерфейса, но и характеризовать его роль в системе.
-
Имя операции должно отражать результат ее выполнения.
-
В имя операции, которая задает или получает информацию, не включайте соответственно слова set
и get. Это излишне. Присвойте операции имя свойства элемента модели, которое будет задано или извлечено.
Операция с таким именем без параметров извлекает свойство. Операция с таким именем с параметром
задает свойство.
Пример
name() возвращает имя объекта; name(aString) задает имя объекта - aString.
-
В описании операции должно быть указано, что она делает, включая ключевые алгоритмы, и какое значение
она возвращает.
-
Называйте параметры операции так, чтобы указать, какая информация будет передана операции.
-
Укажите тип параметра.
Поведение, определенное интерфейсом, задано в виде набора операций. Может потребоваться дополнительная информация:
-
Способы использования операций и порядок их выполнения (см. примеры диаграмм последовательности).
-
Возможные видимые состояния элемента модели, реализующего интерфейс (иллюстрация на примере конечного автомата
приведена в разделе Рекомендация: Диаграмма состояний).
-
Планы тестирования и сценарии для тестирования поведения любого элемента модели, реализующего интерфейс.
Для объединения этой информации и управления ей создайте пакет и поместите в него интерфейс и все связанные рабочие
продукты.
Каждый интерфейс представляет собой "стык" внутри системы, то есть место, где систему можно разложить на компоненты и
скомпилировать снова или изменить ее структуру. Интерфейсы отделяют спецификацию от проектирование и реализации. Хорошо
спроектированные интерфейсы обладают следующими чертами:
-
просты в применении, предоставляют все необходимые операции, но и достаточные для выполнения только одной функции
-
легко понятны, предоставляют достаточно информации как для использования, так и для реализации интерфейса без
необходимости изучения уже существующих случаев использования и реализации
-
доступны, предоставляют пользователям описание своих основных свойств без лишних подробностей об операциях
При создании интерфейса придерживайтесь следующих рекомендаций:
-
Используйте нотацию lollipop, если нужно просто указать наличие стыка в системе. В большинстве случаев это
потребуется для подсистем, но не для классов.
-
Используйте расширенную нотацию class, если нужно описать детали самой службы. В большинстве случаев это
потребуется для указания служб пакета или подсистемы.
|