Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
новая книга-2.doc
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
6.1 Mб
Скачать
    1. Основні поняття об’єктно-орієнтованого підходу

Об'єктно-орієнтований підхід використовує об'єктну декомпозицію, тобто поводження системи описується в термінах взаємодії об'єктів.

Що ж розуміється під об'єктом та які інші основні поняття даного підходу?

Насамперед, уведемо поняття класу. Клас – це абстракція безлічі сутностей реального світу, об'єднаних спільністю структури й поводження.

Об'єкт – це елемент класу, тобто абстракція певної сутності.

Підкреслимо, що об'єкти активні, у них є не тільки внутрішня структура, але й поведінка, що описується так званими методами об'єкта. Наприклад, може бути визначений клас "користувач", що характеризує "користувача взагалі", тобто асоційовані з користувачами дані і їхня поведінка (методи). Після цього може бути створений об'єкт "користувач Іванов" з відповідною конкретизацією даних й, можливо, методів.

До активності об'єктів ми ще повернемося.

Наступну групу найважливіших понять об'єктного підходу складають інкапсуляція, успадкування й поліморфізм.

Основним інструментом боротьби зі складністю в об'єктно-орієнтованому підході є інкапсуляція – приховування реалізації об'єктів (їхньої внутрішньої структури й деталей реалізації методів) з наданням зовні чітко виражених інтерфейсів.

Поняття "поліморфізм" може трактуватися як здатність об'єкта належати більш ніж одному класу. Введення цього поняття відображає необхідність дивитися на об'єкти під різними кутами зору, виділяти при побудові абстракцій різні аспекти сутностей модельованої предметної області, не порушуючи при цьому цілісності об'єкта. (Суворо кажучи, існують й інші види поліморфізму, такі як перевантаження й параметричний поліморфізм, але нас вони зараз не цікавлять.)

Успадкування означає побудову нових класів на основі існуючих з можливістю додавання або перевизначення даних і методів. Успадкування є важливим інструментом боротьби з розмноженням сутностей без необхідності. Загальна інформація не дублюється, указується тільки те, що здійснюється. При цьому клас-нащадок пам'ятає про своє "коріння".

Дуже важливо й те, що успадкування й поліморфізм у сукупності наділяють об'єктно-орієнтовану систему здатністю до відносно безболісної еволюції. Засоби інформаційної безпеки доводиться постійно модифікувати й обновляти, і якщо не можна зробити так, щоб це було економічно вигідно, ІБ з інструмента захисту перетворюється на тягар.

Ми ще повернемося до механізму успадкування при розгляді рольового керування доступом.

Поповнимо розглянутий вище класичний набір понять об'єктно-орієнтованого підходу ще двома поняттями: межі об'єкта й рівня деталізації.

Об'єкти реального світу володіють, як правило, декількома відносно незалежними характеристиками. Стосовно об'єктної моделі будемо називати такі характеристики межами. Ми вже зустрічалися із трьома основними межами ІБ – доступністю, цілісністю й конфіденційністю. Поняття грані дозволяє більш природно, ніж поліморфізм, дивитися на об'єкти з різних точок зору й будувати різнопланові абстракції.

Поняття рівня деталізації важливе не тільки для візуалізації об'єктів, але й для систематичного розгляду складних систем, представлених в ієрархічному вигляді. Саме по собі воно дуже просте: якщо черговий рівень ієрархії розглядається з рівнем деталізації n > 0, то наступний – з рівнем (n – 1). Об'єкт із рівнем деталізації 0 уважається атомарним.

Поняття рівня деталізації показу дозволяє розглядати ієрархії з потенційно нескінченною висотою, варіювати деталізацію як об'єктів у цілому, так й їхніх меж.

Досить розповсюдженою конкретизацією об'єктно-орієнтованого підходу є компонентні об'єктні середовища, до числа яких належить, наприклад, JavaBeans. Тут з'являється два нових важливих поняття: компонентів і контейнерів.

Неформально компонент можна визначити як багаторазово використовуваний об'єкт, що допускає обробку в графічному інструментальному оточенні й збереження в довгостроковій пам'яті.

Контейнери можуть містити в собі безліч компонентів, створюючи загальний контекст взаємодії з іншими компонентами й з оточенням. Контейнери можуть виступати в ролі компонентів інших контейнерів.

Компонентні об'єктні середовища мають всі переваги, які властиві об'єктно-орієнтованому підходу:

  • інкапсуляція об'єктних компонентів приховує складність реалізації, роблячи видимим тільки представлений зовні інтерфейс;

  • успадкування дозволяє розвивати створені раніше компоненти, не порушуючи цілісність об'єктної оболонки;

  • поліморфізм по суті дає можливість групувати об'єкти, характеристики яких з деякого погляду можна вважати подібними.

Поняття ж компонента й контейнера необхідні нам тому, що з їхньою допомогою ми можемо природно представити захищувані ІС і самі захисні засоби. Зокрема, контейнер може визначати кордони контрольованої зони (задавати так званий "периметр безпеки").

На цьому ми завершуємо опис основних понять об'єктно-орієнтованого підходу.