Р. ЛАФОРЕ ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ В C++ (4-Е ИЗДАНИЕ) (часть13) онлайн
Библиотеки классов
В традиционном процедурно-ориентированном программировании долгое вре-
мя среди разработчиков ПО было принято предоставлять программистам биб-
лиотеки функций. С помощью комбинирования этих библиотек и добавления
некоторых собственных процедур и функций получалась программа — продукт,
представляемый конечному пользователю.
Библиотеки обычно содержат очень широкий спектр готовых функций, при-
годных для различного применения. Например, разработчик может предложить
библиотеку функций для статистической обработки данных или оптимизации
работы с памятью компьютера. , .
Поскольку C++ построен на классах, а не на функциях, неудивительно,
что библиотеки для программ на этом языке состоят из классов. Удивляет то,
насколько библиотека классов лучше и прогрессивней старомодных библиотек
функций. Поскольку классы представляют собой совокупность данных и функ-
ций для их обработки, а также из-за того, что они лучше моделируют реальную
жизнь, интерфейс между библиотеками классов и приложениями, которые их
используют, гораздо понятнее, чем между библиотеками функций и приложе-
ниями.
Поэтому библиотеки классов являются более важным предметом при про-
граммировании на C++, чем библиотеки функций при традиционном програм-
мировании. Использование этих библиотек освобождает программиста от очень
многих забот. При разработке приложений оказывается, что если доступны не-
обходимые библиотеки, то для создания полнофункционального продукта необ-
ходим минимум ручной работы по программированию. К тому же необходимо
учитывать, что создается все больше и больше библиотек, а значит, все больший
и больший спектр различного программного обеспечения можно создавать без
лишних проблем.
Крайне важный пример библиотеки классов, который мы увидим в главе 15,
это Стандартная библиотека C++ (STL).
Обычно библиотека классов состоит из интерфейса (interface) и реализации
(implementation). Это две основные части, которые присутствуют практически
всегда. Рассмотрим их подробнее.
Интерфейс
Назовем того человека, который написал библиотеку классов, разработчиком
библиотеки, а того, кто использует эту библиотеку, — программистом.
Для того чтобы библиотеку можно было использовать, программисту необ-
ходим доступ к различным определениям, включая объявления классов. Они
представляют собой общедоступную часть библиотеки и обычно поставляются
в виде исходного кода в составе заголовочного файла с расширением .H. Обыч-
но этот файл включается в текст программы с помощью директивы #include .
Объявления в заголовочных файлах должны быть общедоступными по не-
скольким причинам. Во-первых, программисту гораздо удобнее иметь перед
глазами исходный текст, чем читать руководства и описания. Во-вторых (что
гораздо важнее), как иначе создавать объекты библиотечных классов, как вызы-
вать библиотечные методы? Только с помощью объявлений классов в виде ис-
ходного кода это и возможно.
Эти определения называются интерфейсом, потому что это та часть библио-
теки, которую программист видит и с помощью которой он взаимодействует с
классами. При этом ему нет никакой нужды вникать в содержимое другой части
библиотеки под названием реализация (implementation).
Реализация
Если интерфейсную часть можно назвать фасадом здания, то реализация пред-
ставляет собой его внутренности. В контексте библиотеки классов реализация —
это содержимое классов. Как туристу, любующемуся архитектурными памятни-
ками, вовсе не обязательно знать, что находится внутри зданий, так и програм-
мисту не нужно вникать в то, как происходит внутренняя работа библиотечных
классов. К тому же разработчики библиотек в большинстве случаев просто не
предоставляют клиентам исходных кодов, так как они могут быть нелегально ис-
пользованы или изменены. Поэтому методы классов чаще всего поставляются в
виде объектных (.OBJ) или библиотечных (.LIB) файлов.
На рис. 13.1 показано, как соотносятся между собой компоненты многофай-
ловых систем.
12 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
Схожі підручники
- ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ В C++ (4-Е ИЗДАНИЕ) (часть 3) онлайн
- ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ В C++ (4-Е ИЗДАНИЕ) (часть 12) онлайн
- Соціальне страхування. Навчальний посібник (частина 2)
- Маркетинг тести
- РАБОТА С ВОЗРАЖЕНИЯМИ ПРАКТИЧЕСКИЕ ПРИМЕРЫ УБЕЖДЕНИЯ
- Цивільна оборона (частина 2)
