Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
У. Столлингс ГЛАВА 15 Безопасность.doc
Скачиваний:
66
Добавлен:
11.05.2015
Размер:
795.14 Кб
Скачать

Б.2. Объектно-ориентированные концепции

Основным понятием объектно-ориентированного подхода является объект. Объект — это отдельная программная единица, которая содержит набор связан­ных с ней переменных (данных) и методов (процедур). Вообще говоря, эти пере­менные и методы извне объекта непосредственно не видны. Вместо этого имеют­ся определенные интерфейсы, позволяющие программам осуществлять доступ к данным и процедурам.

Объект представляет собой некоторую сущность, будь то физический пред­мет, понятие, программный модуль или нечто динамическое, например вирту­альная схема. Значения переменных объекта выражают информацию, известную о той вещи, которая представлена данным объектом. Методы содержат в себе процедуры, выполнение которых влияет на имеющиеся в объекте значения и, возможно, на ту вещь, которую этот объект представляет.

На рис. Б.1 и Б.2 проиллюстрированы ключевые концепции объектно-ориентированного подхода.

Структура объектов

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

Переменные (variables) объекта, которые также называются атрибутами (attributes), обычно имеют вид простых скаляров или таблиц. Для каждой из переменных задан тип и, возможно, набор значений, которые может прини­мать эта переменная; переменная может быть определена как константа или как переменная (по соглашению термин переменная используется и для кон­стант). Кроме того, могут быть наложены ограничения на использование пе­ременной определенными пользователями, классами пользователей или в оп­ределенных ситуациях.

Методы (methods) объекта — это процедуры, которые можно запускать из­вне для выполнения определенных функций. Метод может изменять состояние объекта, обновлять значения некоторых переменных или воздействовать на внешние ресурсы, к которым имеет доступ объект.

Объекты взаимодействуют между собой с помощью сообщений (messages). Сообщение содержит в себе имя объекта-отправителя, имя объекта-получателя, имя метода в объекте-получателе и прочие уточняющие параметры, необходимые для работы метода. Содержащийся в объекте метод можно вызвать только с помощью сообщения. Получить доступ к хранящимся в объекте данным можно только с помощью методов этого объекта. Таким образом, с помощью метода можно произвести нужное действие или получить доступ к переменным объекта, или выполнить и то, и другое. Отправка сообщения локальному объекту равно­сильна вызову метода объекта. Для распределенных объектов пересылка сооб­щения означает именно то, что обычно под этим подразумевается.

Интерфейс объекта представляет собой набор открытых методов, поддержи­ваемых объектом. По интерфейсу нельзя судить о реализации; объекты разных классов могут иметь различные реализации одних и тех же интерфейсов.

Свойство объекта, состоящее в том, что его единственным связующим звеном с внешним миром являются сообщения, называется инкапсуляцией (encapsulation).

Методы и переменные объекта являются инкапсулированными, и доступ к ним осу­ществляется только с помощью сообщений. Это свойство дает два преимущества.

  1. Оно защищает переменные объекта от разрушения другими объектами. Эта защита может включать в себя защиту от несанкционированного доступа, а также защиту от таких проблем, возникающих при параллельном доступе, как взаимоблокировка и несогласованные значения.

  2. Оно скрывает внутреннюю структуру объекта, поэтому взаимодействие с ним является сравнительно простым и стандартизированным. Более того, если внутренняя структура или процедуры объекта изменяются без измене­ния выполняемых им внешних функций, это не влияет на другие объекты.