Интерфейс (вычисления)

редактировать
Понятие информатики; точка взаимодействия между двумя вещами

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

Содержание

  • 1 Аппаратные интерфейсы
  • 2 Программные интерфейсы
    • 2.1 На практике
    • 2.2 В объектно-ориентированных языках
    • 2.3 Программирование через интерфейс
  • 3 Пользовательские интерфейсы
  • 4 См. Также
  • 5 Ссылки

Аппаратные интерфейсы

Аппаратные интерфейсы существуют во многих компонентах, таких как различные шины, запоминающие устройства, другие I / O устройства и т. Д. Аппаратный интерфейс описывается механическими, электрическими и логическими сигналами на интерфейсе и протоколом для их упорядочивания (иногда называемым сигнализацией). Стандартный интерфейс, такой как SCSI, отделяет разработку и внедрение вычислительного оборудования, такого как устройства ввода-вывода, от проектирования и внедрения других компонентов вычислительной системы, тем самым предоставляя пользователям и производителям большую гибкость при внедрении вычислительных систем. Аппаратные интерфейсы могут быть параллельными с несколькими электрическими соединениями, передающими части данных одновременно, или последовательными, где данные отправляются по одному биту за раз.

Программные интерфейсы

Программный интерфейс может относиться к широкому спектру различных типов интерфейса на разных «уровнях»: операционная система может взаимодействовать с частями оборудования. Приложения или программы, работающие в операционной системе, могут потребовать взаимодействия через потоки данных , фильтры и конвейеры; а в объектно-ориентированных программах объектам в приложении может потребоваться взаимодействие с помощью методов.

На практике

Ключевым принципом проектирования является запрет доступа ко всем ресурсам по умолчанию, разрешая доступ только через четко определенные точки входа, т. е. интерфейсы. Программные интерфейсы обеспечивают доступ к компьютерным ресурсам (таким как память, ЦП, хранилище и т. Д.) Базовой компьютерной системы; Прямой доступ (т. е. не через хорошо продуманные интерфейсы) к таким ресурсам со стороны программного обеспечения может иметь серьезные разветвления - иногда катастрофические - для функциональности и стабильности.

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

Интерфейс программного модуля A намеренно определяется отдельно от реализации этого модуля. Последний содержит фактический код процедур и методов, описанных в интерфейсе, а также другие «частные» переменные, процедуры и т. Д. Другой программный модуль B, например, client to A, который взаимодействует с A вынужден делать это только через опубликованный интерфейс. Одним из практических преимуществ такой схемы является то, что замена реализации A другой реализацией того же интерфейса не должна приводить к отказу B - то, как A внутренне выполняет требования интерфейса, не имеет отношения к B, что касается только со спецификациями интерфейса. (См. Также Принцип подстановки Лискова.)

В объектно-ориентированных языках

В некоторых объектно-ориентированных языках, особенно без полного множественного наследования, term interface используется для определения абстрактного типа, который не содержит данных, но определяет поведение как метод сигнатур. класс, имеющий код и данные для всех методов, соответствующих этот интерфейс и его объявление, как говорят, реализуют этот интерфейс. Более того, даже в языках с одним наследованием можно реализовать несколько интерфейсов и, следовательно, они могут быть разных типов одновременно.

Таким образом, интерфейс является определение типа ; в любом месте, где можно обменять объект (например, в вызове функции или метода ), можно определить тип объекта для обмена с точки зрения одного из реализованных интерфейсов или базовых классов, вместо того, чтобы указывать конкретный класс. Этот подход означает, что любой класс, реализующий этот интерфейс, может использоваться. Например, фиктивная реализация может использоваться, чтобы позволить разработке продвигаться до того, как окончательная реализация станет доступной. В другом случае во время тестирования может быть заменена реализация поддельной или фиктивной. Такие реализации заглушки заменяются реальным кодом позже в процессе разработки.

Обычно метод, определенный в интерфейсе, не содержит кода и поэтому не может быть вызван сам; он должен быть реализован неабстрактным кодом для запуска при его вызове. Интерфейс под названием «Стек » может определять два метода: push ()и pop (). Его можно реализовать по-разному, например, FastStackи GenericStack- первый из них быстрый, работает со структурой данных фиксированного размера, а второй использует структуру данных, которая может можно изменить размер, но за счет несколько меньшей скорости.

Хотя интерфейсы могут содержать много методов, они могут содержать только один или вообще ни одного. Например, язык Java определяет интерфейс Readable, который имеет единственный метод read (); различные реализации используются для разных целей, включая BufferedReader, FileReader, InputStreamReader, PipedReaderи StringReader. Маркер-интерфейсы, такие как Serializable, вообще не содержат методов и служат для предоставления информации времени выполнения для общей обработки с использованием Reflection.

Программирование интерфейса

Использование интерфейсов позволяет использовать стиль программирования, называемый программированием интерфейса. Идея этого подхода состоит в том, чтобы основывать логику программирования на интерфейсах используемых объектов, а не на деталях внутренней реализации. Программирование через интерфейс снижает зависимость от специфики реализации и делает код более пригодным для повторного использования.

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

Пользовательские интерфейсы

A пользовательский интерфейс - это точка взаимодействия между компьютером и людьми; он включает любое количество модальностей взаимодействия (таких как графика, звук, положение, движение и т.д.), при которых данные передаются между пользователем и компьютерной системой.

См. Также

Ссылки

Последняя правка сделана 2021-05-24 04:11:50
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте