Основные возможности ООП


Любая объектно-ориентированная система должна обладать следующими пятью характеристиками: абстрактностью, инкапсуляцией, наследованием, полиморфизмом и динамическим связыванием. Абстракция — это способ представления данных на определенном уровне некоторой конкретной про­блемной области. Инкапсуляция — это процесс, позволяющий скрывать де­тали реализации объекта с помощью некоторого определенного для этого класса внешнего интерфейса. Наследование позволяет определять классы, использующие определения других классов и обладающие всеми их и неко­торыми своими свойствами, если это необходимо. Полиморфизм — свойство, благодаря которому различные объекты по-разному реагируют на одни и те же сообщения. Динамическое связывание является возможностью выбирать определенный обработчик сообщения объекта во время выполнения про­граммы. Рассмотрим теперь, как CLIPS реализует все эти основные свойст­ва системы ООП.

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

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

COOL поддерживает множественное наследование. Это означает, что неко­торый класс может обладать всеми свойствами указанного одного или более суперкласса. Для установления линейного порядка наследования свойств классов при множественном наследовании COOL использует список пред­шествования классов (class precedence list), построенный с использованием иерархии наследования. Объект, представляющий собой экземпляр нового класса, наследует все свойства (слоты) и поведение (обработчики сообще­ний) каждого класса из списка предшествования классов. Слово "предшест­вование" обозначает, что свойства и поведение класса, находящегося ближе к началу списка, переопределяют конфликтующие определения ранее встре­тившихся классов.

Различные COOL-объекты могут реагировать на одно и то же сообщение совершенно по-разному. Это реализует свойство полиморфизма. На прак­тике это выполняется присоединением к разным классам обработчиков од­ного и того же сообщения, но с разными последовательностями выполняе­мых действий.

CLIPS также поддерживает возможность динамического связывания, реали­зуемую с помощью функции send, предназначенной для посылки сообще­ний объекту. Вызов этой функции осуществляется именно в процессе выполнения программы, таким образом, определение обработчика выполняю­щегося в тот или иноймомент также происходит в процессе выполнения программы. Например, функция send может получать в качестве параметра переменную, которая в разные моменты времени ссылается на различные объекты, при этом могут вызываться совершенно разные обработчики. Под­робно процесс определения нужного обработчика описан в гл. 11.



Дата добавления: 2021-12-14; просмотров: 284;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.009 сек.