Информатика. Общая информатика. Основы языка C++. Мамонова Т.Е. - 92 стр.

UptoLike

Составители: 

3.6.6. Родственные методологии
Компонентное программирование – следующий этап развития
ООП; прототип- и класс-ориентированное программирование разные
подходы к созданию программы, которые могут комбинироваться, име-
ющие свои преимущества и недостатки.
Компонентное программирование
Компонентно-ориентированное программирование это своеоб-
разная «надстройка» над ООП, набор правил и ограничений, направлен-
ных на построение крупных развивающихся программных систем
с большим временем жизни. Программная система в этой методологии
представляет собой набор компонентов с хорошо определёнными ин-
терфейсами. Изменения в существующую систему вносятся путём со-
здания новых компонентов в дополнение или в качестве замены ранее
существующих. При создании новых компонентов на основе ранее со-
зданных запрещено использование наследования реализации новый
компонент может наследовать лишь интерфейсы базового. Таким об-
разом компонентное программирование обходит проблему хрупкости
базового класса [8].
Прототипное программирование
Прототипное программирование, сохранив часть черт ООП, отказа-
лось от базовых понятий – класса и наследования.
Вместо механизма описания классов и порождения экземпляров
язык предоставляет механизм создания объекта (путём задания набора
полей и методов, которые объект должен иметь) и механизм клонирова-
ния объектов.
Каждый вновь созданный объект является «экземпляром без клас-
са». Каждый объект может стать прототипом быть использован для
создания нового объекта с помощью операции клонирования. После кло-
нирования новый объект может быть изменён, в частности, дополнен
новыми полями и методами.
Клонированный объект либо становится полной копией прототипа,
хранящей все значения его полей и дублирующей его методы, либо
сохраняет ссылку на прототип, не включая в себя клонированных полей
и методов до тех пор, пока они не будут изменены. В последнем случае
среда исполнения обеспечивает механизм делегирования если при об-
ращении к объекту он сам не содержит нужного метода или поля дан-
ных, вызов передаётся прототипу, от него, при необходимости дальше
по цепочке.
92