5.3 Интерфейсы и Реализации

5.3 Интерфейсы и Реализации

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

Для всех видов контейнеров существуют очевидные примеры: таблицы, множества, списки, вектора, словари и т.д. Такой класс имеет операцию «вставить», обычно он также имеет оперции для проверки того, был ли вставлен данный элемент. В нем могут быть действия для осуществления проверки всех элементов в определенном порядке, и кроме всего прочего, в нем может иметься операция для удаления элемента. Обычно контейнерные (то есть, вмещающие) классы имеют конструкторы и деструкторы.

Сокрытие данных и продуманный интерфейс может дать коцепция модуля (см. например #4.4: файлы как модули). Класс, однако, является типом. Чтобы использовать его, необходимо создать объекты этого класса, и таких объектов можно создвать столько, сколько нужно. Модуль же сам является объектом. Чтобы использовать его, его надо только инициализировать, и таких объектов ровно один.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

Замечания по Реализации

Из книги C++ автора Хилл Мюррей

Замечания по Реализации Во время написания этой книги все реализации С++ использовали версии единственного интерфейсного компилятора*. Он используется на многих архитектурах, включая действующие версии системы операционной системы UNIX на AT amp;T 3B, DEC VAX, IBM 370 и Motorolla 68000.


5.3.1 Альтернативные Реализации

Из книги Getting Real (на русском) [вычитывается] автора 37signals

5.3.1 Альтернативные Реализации Пока описание открытой части класса и описание функций членов остаются неизменными, реализацию класса можно модифцировать не влияя на ее пользователей. Как пример этого расмотрим таблицу имен, которая использовалась в настольном


От идеи к реализации

Из книги Основы AS/400 автора Солтис Фрэнк

От идеи к реализации Перейдите от мозговых штурмов — к эскизам — к HTML — к кодированиюВот процесс Get Real, который мы используем:Мозговой штурмНачинайте с идеи. Что этот продукт собирается делать? Для Basecamp, мы смотрели на свои собственные потребности. Мы хотели сделать


Реализации процессора AS/400

Из книги Основы объектно-ориентированного программирования автора Мейер Бертран

Реализации процессора AS/400 Первые использовавшиеся в AS/400 RISC-процессоры поддерживали только режим активных тегов и только структуру ввода-вывода AS/400. Поэтому они выполняли приложения, но не операционные системы, написанные для стандартного процессора PowerPC. Любая другая


Различные реализации

Из книги Серверные технологии хранения данных в среде Windows® 2000 Windows® Server 2003 автора Дайлип Наик

Различные реализации Чтобы лучше понять всю важность описаний абстрактных типов данных, исследуем глубже потенциальные последствия использования физической реализации в качестве основы описания объектов.Удобным и хорошо изученным примером является описание


Инварианты реализации

Из книги TCP/IP Архитектура, протоколы, реализация (включая IP версии 6 и IP Security) автора Фейт Сидни М

Инварианты реализации Некоторые утверждения появляются в реализации, хотя они не имеют прямых двойников в спецификации АТД. Эти утверждения используют атрибуты, включая некоторые закрытые атрибуты, которые, по определению, не имеют смысла в АТД. Простым примером


У11.5 Инвариант реализации

Из книги Инфраструктуры открытых ключей автора Полянская Ольга Юрьевна

У11.5 Инвариант реализации Напишите инвариант реализации для класса


1.9 Сложности практической реализации

Из книги Программирование на языке Пролог для искусственного интеллекта автора Братко Иван

1.9 Сложности практической реализации Стек ввода-вывода подсистемы хранения в семействе Windows Server описан в этой главе довольно подробно. Но помните, что стек подсистемы хранения не обслуживает устройства, поддерживающие несколько протоколов.Чтобы повысить надежность и


9.5 Сложности практической реализации

Из книги QNX/UNIX [Анатомия параллелизма] автора Цилюрик Олег Иванович

9.5 Сложности практической реализации Использование массивов RAID является весьма привлекательным решением, поскольку позволяет избежать значительных потерь производительности и обеспечить отказоустойчивость. Было создано несколько схем массивов RAID, которые


15.1.4 Реализации NFS и RPC

Из книги Программирование для карманных компьютеров автора Волков Владимир Борисович

15.1.4 Реализации NFS и RPC NFS и RPC были реализованы многими разработчиками систем Unix, а также перенесены во многие лицензированные операционные системы. Например, IBM VM, IBM MVS и DEC VAX VMS могут работать как файловые серверы NFS.Некоторые разработчики объединили программное


Проблемы реализации

Из книги Социальные сети [Источники новых клиентов для бизнеса] автора Парабеллум Андрей Алексеевич

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


Реализации. NET

Из книги автора

Реализации. NET В настоящий момент существует несколько реализаций того, что мы называем. NET.1. NET Framework – версия среды выполнения для серверных и настольных компьютеров с операционной системой Microsoft Windows. Она поставляется в составе операционных систем Windows XP Tablet Edition и Windows


Примеры реализации функций

Из книги автора

Примеры реализации функций Если посмотреть, допустим, на пример моей страницы (Николая Мрочковского), почти сразу бросается в глаза заманчивое предложение: «Получите курс “30 способов заработка в Интернете”», «Основы успеха бизнеса» в книгах и т. д. – и крупные буквы


Стратегии реализации TCP

Из книги автора

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