Кент Рейсдорф. BORLAND C++BUILDER. Раздел 1
Кент Рейсдорф. BORLAND C++BUILDER. Страница 98
J
]
Не правда ли, это выглядит немного устрашающе? Мне даже пришлось обратиться за помощью к друзьям по телеконференции BCPPLIB сети CompuServe (спасибо, Пол!). Теперь взгляните на тот же пример, написанный с использованием библиотеки OWL фирмы Borland (листинг 5.2).
Листинг 5.2. OWL-код для загрузки и вывода на экран растрового изображения
Какой из вариантов вы предпочтете использовать? Для принятия решения вам даже не нужно знать, что именно делают эти фрагменты кода. Нетрудно заметить, что OWL-версия намного короче и легче для восприятия. (VCL облегчает работу еще больше, предоставляя компонент для работы с растровыми изображениями, который вы можете поместить в форму. Я не хочу сейчас забегать вперед и отложу на некоторое время рассмотрение этих возможностей.)
Рассмотренные примеры дают понять, что представляют собой в целом библиотеки классов. Библиотеки скрывают от вас те детали, знание которых не обязательно. Все, что содержится в листинге 5.1, выполняется OWL-кодом из листинга 5.2. Вам не нужно знать все детали того, как работают классы OWL; возможно, у вас и не возникнет такого желания. Все, что требуется — это взять объекты, которые входят в библиотеку, и использовать их в своей программе.
Хорошие библиотеки реализуют все достоинства ООП. Одни делают это лучше, другие — хуже. Библиотеки OWL и VCL фирмы Borland служат великолепным примером объектно-ориентированного подхода к программированию. Они обеспечивают тот уровень абстрактного представления данных, который требуется для профессиональной разработки приложений.
Нетрудно сообразить, что за облегчение работы приходится чем-то платить. Это действительно так. Программа, написанная с использованием библиотечных классов, в общем случае должна иметь больший размер и работать медленнее, чем ее аналог на Си. Однако это верно лишь отчасти. Приложения, использующие библиотеки классов, не обязательно будут медленнее программ, написанных на Си. Конечно, языку Си++ присуща некоторая избыточность, но для типичных Windows-программ это практически незаметно.