Интерфейсы используются для задания операций, выполняемых классом проектирования или подсистемой.
Класс проектирования, предоставляющий интерфейс, может также предоставлять методы реализации операций, заявленных в интерфейсе. Подсистема, предоставляющая интерфейс, также может содержать классы проектирования или другие подсистемы, непосредственно предоставляющие интерфейс.
Интерфейсы предоставляют способ отделения спецификации функциональности в терминах операций от ее реализации в терминах методов. Это отделение делает клиентов, которые зависят от интерфейса или используют его, независимыми от реализации интерфейса. Отдельная реализация интерфейса, такая как класс проектирования или подсистема, может быть заменена другой реализацией, при этом никаких изменений в клиенте делать не потребуется.
Большинство интерфейсов между подсистемами считается архитектурно значимыми, поскольку они определяют способы взаимодействия подсистем. В некоторых случаях они также используются для создания описаний стабильных интерфейсов в начале жизненного цикла системы до того, как в подсистеме будет реализована функциональность, которая в них объявлена. Эти интерфейсы могут рассматриваться как требования на разработку подсистем к команде разработчиков, а также могут быть использованы как инструмент синхронизации различных команд, одновременно разрабатывающих различные подсистемы.
В подразделе «Определение интерфейсов подсистем» данной главы мы приводим множество информации об интерфейсах и их прагматике, включая метод их идентификации. |