То, что вы видите на экране, это верхушка айсберга.Компоненты разных размеров, сложные или простые программы, с открытыми интерфейсами.В программировании потока данных эти интерфейсы являются производителями и потребителями (выходы и входы), поэтому компонент можно визуализировать в виде черного ящика с выводами на его входных и выходных сторонах.Когда вы подключаете контакты (порты), вы выводите вывод одной программы на вход другой программы.Компоненты предварительно скомпилированы для вас, они готовы к работе, вы только что установили их потребителей (входы) и производителей (выходы), подключив их.Вот почему они являются черными ящиками: это программы, которые нельзя изменить (кроме случаев, когда вы получили исходный код).
Компоненты предназначены для подключения к другим.В некоторых случаях компоненты могут работать автономно, но обычно они должны быть подключены для выполнения всей работы.В основном, есть три вида компонентов: - источник: генерирует вывод (который требует дальнейшей обработки или отображения), - обрабатывает: получает ввод, обрабатывает его, затем передает его для дальнейшей обработки или отображения, - приемник: получает ввод, отображает или сохраняети никому не передает.
Типичная полная конструкция потока данных содержит цепочку источник-процесс-процесс-приемник, где число компонентов типа процесса может быть даже нулевым (данные, сгенерированныеисточник отображается компонентом приемника).Вы можете думать об этих трех компонентах, как если бы они были одной программой раньше, но они сломались, и теперь вы можете собрать их заново.
Одна из самых известных систем обработки данных - оболочка Unix.Команды CLI являются компонентами.Они предварительно скомпилированы, вы просто определяете цепочку, помещая "|"между ними.Кроме того, большинство «исходных» команд могут использоваться автономно, например ls , и большинство «приемных» компонентов могут получать входные данные из файла, определенного как аргумент, например, more .