Тысяча полезных мелочей    

КОНТЕЙНЕРЫ В МЕТОДОЛОГИИ ПРОГРАММИРОВАНИЯ

КОНТЕЙНЕРЫ В МЕТОДОЛОГИИ ПРОГРАММИРОВАНИЯ

Прыгунков М.О. Статья в формате PDF 101 KB

Объектно-ориентированные языки поддерживают три базовых принципа объектной технологии:

1) инкапсуляция

2) наследование

3) полиморфизм

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

Принцип наследования. В объектно-ориентированных языках можно моделировать связь путём объявления базового класса и производного от него. Классы связываются посредством классического наследования («А есть В») или с помощью модели контейнеров («А содержит В»). В любом случаи наследование всегда предполагает, что один класс является специальной формой другого.

Отношение «А есть В»: классическое наследование. В классическом наследовании подкласс перенимает существующую функциональность базового класса.

Отношение «А содержит В»: контейнеры и делегирование. Другой способ наследования является реализация отношения «А содержит В» и известен также как модель контейнеризации/делегирования (containment/delegation).

Принцип полиморфизма. Полиморфизм позволяет связанным классам единым образом реагировать на одинаковые сообщения. Так же как и с наследованием, существуют две формы полиморфизма - классический и конкретный (adhoc) полиморфизм.

Классический полиморфизм поддерживается только теми языками, которые поддерживают классическое наследование. Оба принципа тесно связаны друг с другом.

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

Понятие роли объекта не менее важно для агрегации, чем формальные параметры подпрограмм в структурном программировании. Это положение исходит из того, что понятие роли вводит виртуальность объектов в контейнере. Действительно, можно с полным правом сказать, что контейнер агрегирует объекты, способные выступать в таких-то ролях, то есть, объектов, имеющих некоторую определённую совокупность интерфейсов.

Понятие роли динамично, поскольку оно позволяет непосредственно при работе системы объявить ролью некоторый набор интерфейсов и потребовать от системы список классов, объекты которых способны выступать в данной роли. Для примера можно рассмотреть класс, который имеет интерфейсы A, B, C, D и F. В роли «альфа» объединим интерфейсы A и B, в роли «бета» - интерфейсы B, C и F, в роли «гамма» - A, C и D и т.д. Понятно, что подклассы всегда могут выступать в тех ролях. Однако, благодаря тому, что полиморфизм является понятием независимым от наследования (обратное неверно), то справедливо будет и утверждение, что классы, не находящиеся в наследственной связи, тоже способны играть одну и ту же роль.

Простота и удобство механизма виртуальности объектов в контейнере позволяют существенно облегчить разработку сложных систем за счёт перехода от упрощенных опытных моделей к промышленным образцам. С другой стороны, на основе данного вида виртуализации можно моделировать и реальную эволюцию сложных систем, например, биологических, технических, социальных. Однако, как будет отмечено ниже, такие требования не являются непреодолимыми, поскольку, с одной стороны, контейнеры существенно упрощают вложенные классы, в том числе и спецификации интерфейсов, а, с другой стороны, наследование контейнеров, как обычных классов, приводит и к наследованию функционала, который представим в виде ролей вложенных объектов. И, наконец, у контейнеров, как и любых других классов можно будет «наращивать» функциональность по мере необходимости, повышая возможности системы. Поэтому можно установить порядок разработки контейнера, определяя тем самым приоритеты реализации ролей, то есть интерфейсов вложенных классов.

Отметим, что на основе механизма сборки программ из объектов в процессе выполнения программ можно даже предложить способ создания новых типовых элементов построения программ, названных «кубиками» из уже созданных «кубиков».



Регулирование отношений между государствами

Регулирование отношений между государствами Статья в формате PDF 112 KB...

19 07 2026 0:45:52

ИЛЬМУШКИН ГЕОРГИЙ МАКСИМОВИЧ

ИЛЬМУШКИН ГЕОРГИЙ МАКСИМОВИЧ Статья в формате PDF 108 KB...

17 07 2026 23:43:51

ОПРЕДЕЛЕНИЕ РАБОТЫ И РАБОТА СИЛЫ ТРЕНИЯ

ОПРЕДЕЛЕНИЕ РАБОТЫ И РАБОТА СИЛЫ ТРЕНИЯ Показано, что общепринятая формула для определения работы справедлива только для частных случаев. Правильное определение работы. Общепринятая формула работы тоже применима только к одному частному случаю. ...

10 07 2026 2:54:21

НЕОБЫЧНЫЕ СВОЙСТВА НЕКОТОРЫХ БЕСКОНТАКТНО АКТИВИРОВАННЫХ РАСТВОРОВ

НЕОБЫЧНЫЕ СВОЙСТВА НЕКОТОРЫХ БЕСКОНТАКТНО АКТИВИРОВАННЫХ РАСТВОРОВ Исследованы водные растворы неорганических соединений бесконтактно активированные в бездиафрагменном электролизере. Активация в большинстве случаев сопровождается уменьшением окислительно-восстановительного потенциала растворов. Показано, что релаксация бесконтактно активированных растворов начинается спустя 30-40 минут по завершении активации и протекает в колебательном режиме. Растворы бихромата калия при активации приобретают отрицательный окислительно-восстановительный потенциал, спектр поглощения растворов при этом не изменяется. Для растворов перманганата калия наблюдается противоположный эффект. Изменения окислительно-восстановительного потенциала невелики, однако изменение спектра поглощения раствора свидетельствует об образовании продукта, не имеющем аналогов при химическом восстановлении KMnO4. ...

05 07 2026 13:26:34

ЭКОЛОГИЧЕСКИЕ И АГРОЛАНДШАФТНЫЕ ОСОБЕННОСТИ ЗОНАЛЬНЫХ СИСТЕМ ЗЕМЛЕДЕЛИЯ В УСЛОВИЯХ КАЗАХСТАНА

ЭКОЛОГИЧЕСКИЕ И АГРОЛАНДШАФТНЫЕ ОСОБЕННОСТИ ЗОНАЛЬНЫХ СИСТЕМ ЗЕМЛЕДЕЛИЯ В УСЛОВИЯХ КАЗАХСТАНА Приведены результаты научных исследований сохранения и улучшения экологического состояния агроландшафтов Казахстана. Проведены экспериментальные работы с учетом дифференциации зональных систем земледелия. Исследования показали, что оценка в эрозионных агроландшафтах адаптивности основной обработки богарных светло-каштановых почв на уровне мезо – и микроландшафтных условий, вспашка более эффективна в северных и восточных экспозиций склонов, где плотность пахотного слоя была в среднем за вегетацию зерновых культур в основном на 0,02–0,04 г/см3 меньше по сравнению с плоскорезной обработкой. На склонах южной и западной экспозиций наоборот плоскорезная обработка способствовала снижению уплотненности почвы, на 0,03–0,05 г/см3 и повышению ее противоэрозионной устойчивости в 1,2–1,5 раза. На склонах северной и восточной экспозиции вспашка обеспечивает более эффективную борьбу с сорняками, а плоскорезная – на южных и западных склонах более высокое и равномерное накопление снега и рациональное использование влаги. Важнейшим звеном улучшения экологии почв является оптимизация севооборотов. В статье предлагается построить севооборот по количеству оставляемого в почве органического вещества, каждым предшественником. Для совершенствования севооборотов рекомендуется сидерация, уплотненные посевы, размещение многолетних и однолетних трав, применения органических удобрений и др. ...

02 07 2026 2:40:36

ПРЕДСТАВЛЕНИЕ ФУНКЦИИ РАЗЛИЧНЫМИ РЯДАМИ ФУРЬЕ

ПРЕДСТАВЛЕНИЕ ФУНКЦИИ РАЗЛИЧНЫМИ РЯДАМИ ФУРЬЕ Статья в формате PDF 648 KB...

26 06 2026 16:11:24

АРХЕТИПИЧЕСКИЕ ОСНОВАНИЯ БЫТИЯ НООСФЕРЫ

АРХЕТИПИЧЕСКИЕ ОСНОВАНИЯ БЫТИЯ НООСФЕРЫ Статья в формате PDF 110 KB...

22 06 2026 8:16:56

НОВЫЕ ВИДЫ ОВСЯНОГО ПЕЧЕНЬЯ

НОВЫЕ ВИДЫ ОВСЯНОГО ПЕЧЕНЬЯ Статья в формате PDF 522 KB...

16 06 2026 22:17:42

Еще:
Поддержать себя -1 :: Поддержать себя -2 :: Поддержать себя -3 :: Поддержать себя -4 :: Поддержать себя -5 :: Поддержать себя -6 :: Поддержать себя -7 :: Поддержать себя -8 :: Поддержать себя -9 :: Поддержать себя -10 :: Поддержать себя -11 :: Поддержать себя -12 :: Поддержать себя -13 :: Поддержать себя -14 :: Поддержать себя -15 :: Поддержать себя -16 :: Поддержать себя -17 :: Поддержать себя -18 :: Поддержать себя -19 :: Поддержать себя -20 :: Поддержать себя -21 :: Поддержать себя -22 :: Поддержать себя -23 :: Поддержать себя -24 :: Поддержать себя -25 :: Поддержать себя -26 :: Поддержать себя -27 :: Поддержать себя -28 :: Поддержать себя -29 :: Поддержать себя -30 :: Поддержать себя -31 :: Поддержать себя -32 :: Поддержать себя -33 :: Поддержать себя -34 :: Поддержать себя -35 :: Поддержать себя -36 :: Поддержать себя -37 :: Поддержать себя -38 ::