Публичный интерфейс
Эта статья нуждается в дополнительных цитатах для проверки . ( ноябрь 2019 г. ) |
В информатике общедоступный интерфейс — это логическая точка, в которой взаимодействуют независимые программные объекты. Объекты могут взаимодействовать друг с другом внутри одного компьютера, через сеть или через множество других топологий .
важно, чтобы общедоступные интерфейсы Для продолжения взаимодействия были стабильными и были разработаны с учетом будущих изменений, улучшений и устаревания.
Дизайн
[ редактировать ]![]() | Эта статья содержит инструкции, советы и инструкции . ( ноябрь 2019 г. ) |
Руководство
[ редактировать ]Проект должен предоставить дополнительные документы, описывающие планы и процедуры, которые можно использовать для оценки соответствия проекта.
- архитектурный проектный документ.
- документ о стандартах кодирования .
- документ плана выпуска программного обеспечения.
- документ с планом отказа от устаревших интерфейсов.
Программист должен создавать полностью изолированные классы и изолировать общедоступные интерфейсы от зависимостей времени компиляции .
Лучшие практики
[ редактировать ]- полные и связные наборы концепций . Представляйте пользователю
- Проектируйте интерфейсы со статической типизацией.
- Минимизируйте зависимости интерфейса от других интерфейсов.
- Выразите интерфейсы с точки зрения типов уровня приложения.
- Используйте утверждения только для содействия развитию и интеграции.
Пример
[ редактировать ]С++-интерфейс
[ редактировать ]- Используйте классы протоколов для определения общедоступных интерфейсов.
- Характеристики класса протокола:
- Он не содержит и не наследует классы, содержащие данные-члены, невиртуальные функции или частные (или защищенные) члены любого типа.
- Он имеет невстроенный виртуальный деструктор, определенный с пустой реализацией.
- Все функции-члены, кроме деструктора, включая унаследованные функции, объявляются чисто виртуальными и остаются неопределенными.
- Преимущества
- Преимущества использования классов протоколов включают в себя:
- Изоляция приложений от внешнего клиента
- Изолирующие изменения, которые являются внутренними для интерфейса
- Изолировать изменения публичного интерфейса от изменений реализации интерфейса
- Изоляция требует затрат, но они, как правило, перевешиваются преимуществами совместимости и возможности повторного использования.
- Затраты :
- Проходим по указателю реализации
- Добавление одного уровня косвенности для каждого доступа
- Добавление размера указателя реализации на объект к требованиям к памяти.
Другая информация
[ редактировать ]Различные методологии , такие как рефакторинг , поддерживают определение интерфейсов. Рефакторинг обычно применяется ко всей реализации программного обеспечения, но особенно полезен при правильной очистке интерфейсов. Существуют и другие подходы, определенные сообществом шаблонов. [1]
Ссылки
[ редактировать ]- ^ «Библиотека шаблонов проектирования» . Hillside.net . Проверено 24 ноября 2022 г.