- •Безопасность
- •Аппаратное обеспечение
- •Программное обеспечение
- •Линии связи и сети
- •15.2. Защита
- •Защита памяти
- •Контроль доступа, ориентированный на пользователя
- •Контроль доступа, ориентированный на данные
- •15.3. Взломщики
- •Методы вторжения
- •Защита паролей
- •Уязвимость паролей
- •Контроль доступа
- •Стратегии выбора паролей
- •Выявление вторжений
- •15.4. Зловредное программное обеспечение
- •Зловредные программы
- •Логические бомбы
- •Троянские кони
- •Природа вирусов
- •Виды вирусов
- •Макровирусы
- •Подходы к борьбе с вирусами
- •Обобщенное дешифрование
- •Цифровая иммунная система
- •15.5. Системы с доверительными отношениями
- •Защита от троянских коней
- •15.6. Безопасность операционной системы windows 2000
- •15.7. Резюме, ключевые термины и контрольные вопросы
- •Контрольные вопросы
- •15.8. Рекомендуемая литература
- •Приложение. Шифрование
- •Стандартное шифрование
- •Стандарт шифрования данных
- •Тройной алгоритм шифрования данных
- •Улучшенный стандарт шифрования
- •Шифрование с открытым ключом
- •А.2. Архитектура протоколов tcp/ip
- •Уровни протокола tcp/ip
- •Приложения tcp/ip
- •Б.1. Мотивация
- •Б.З. Преимущества объектно-ориентированного подхода
- •Б.2. Объектно-ориентированные концепции
- •Структура объектов
- •Классы объектов
- •Наследование
- •Полиморфизм
- •Включение
- •Список литературы
Б.2. Объектно-ориентированные концепции
Основным понятием объектно-ориентированного подхода является объект. Объект — это отдельная программная единица, которая содержит набор связанных с ней переменных (данных) и методов (процедур). Вообще говоря, эти переменные и методы извне объекта непосредственно не видны. Вместо этого имеются определенные интерфейсы, позволяющие программам осуществлять доступ к данным и процедурам.
Объект представляет собой некоторую сущность, будь то физический предмет, понятие, программный модуль или нечто динамическое, например виртуальная схема. Значения переменных объекта выражают информацию, известную о той вещи, которая представлена данным объектом. Методы содержат в себе процедуры, выполнение которых влияет на имеющиеся в объекте значения и, возможно, на ту вещь, которую этот объект представляет.
На рис. Б.1 и Б.2 проиллюстрированы ключевые концепции объектно-ориентированного подхода.
Структура объектов
Данные и процедуры, которые содержатся в объекте, обычно называют соответственно переменными и методами. Все, что известно объекту, можно выразить с помощью его переменных, а все, что он может выполнять, — с помощью его методов.
Переменные (variables) объекта, которые также называются атрибутами (attributes), обычно имеют вид простых скаляров или таблиц. Для каждой из переменных задан тип и, возможно, набор значений, которые может принимать эта переменная; переменная может быть определена как константа или как переменная (по соглашению термин переменная используется и для констант). Кроме того, могут быть наложены ограничения на использование переменной определенными пользователями, классами пользователей или в определенных ситуациях.
Методы (methods) объекта — это процедуры, которые можно запускать извне для выполнения определенных функций. Метод может изменять состояние объекта, обновлять значения некоторых переменных или воздействовать на внешние ресурсы, к которым имеет доступ объект.
Объекты взаимодействуют между собой с помощью сообщений (messages). Сообщение содержит в себе имя объекта-отправителя, имя объекта-получателя, имя метода в объекте-получателе и прочие уточняющие параметры, необходимые для работы метода. Содержащийся в объекте метод можно вызвать только с помощью сообщения. Получить доступ к хранящимся в объекте данным можно только с помощью методов этого объекта. Таким образом, с помощью метода можно произвести нужное действие или получить доступ к переменным объекта, или выполнить и то, и другое. Отправка сообщения локальному объекту равносильна вызову метода объекта. Для распределенных объектов пересылка сообщения означает именно то, что обычно под этим подразумевается.
Интерфейс объекта представляет собой набор открытых методов, поддерживаемых объектом. По интерфейсу нельзя судить о реализации; объекты разных классов могут иметь различные реализации одних и тех же интерфейсов.
Свойство объекта, состоящее в том, что его единственным связующим звеном с внешним миром являются сообщения, называется инкапсуляцией (encapsulation).
Методы и переменные объекта являются инкапсулированными, и доступ к ним осуществляется только с помощью сообщений. Это свойство дает два преимущества.
Оно защищает переменные объекта от разрушения другими объектами. Эта защита может включать в себя защиту от несанкционированного доступа, а также защиту от таких проблем, возникающих при параллельном доступе, как взаимоблокировка и несогласованные значения.
Оно скрывает внутреннюю структуру объекта, поэтому взаимодействие с ним является сравнительно простым и стандартизированным. Более того, если внутренняя структура или процедуры объекта изменяются без изменения выполняемых им внешних функций, это не влияет на другие объекты.