IT-Reviews    

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

Рекомендуем: Как подготовить автомобиль к зиме
Источник:
Прыгунков М.О. Статья в формате PDF 101 KB

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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




Отзывы (через Facebook):

Оставить отзыв с помощью аккаунта FaceBook:


ЭЛЕМЕНТЫ И ПУТИ РЕАЛИЗАЦИИ КАДРОВОЙ ПОЛИТИКИ БАНКА

Статья в формате PDF 124 KB...

12 06 2021 15:25:38

ДИСКОЛЕТ И ЕГО АВТОМОДЕЛЬНОСТЬ

Измерена подъемная сила, создаваемая скошенным экранированным кольцевым крылом. Показано, что экспериментальные результаты удовлетворяют свойству автомодельности. ...

10 06 2021 22:17:58

ЖАК СЕРГЕЙ ВЕНИАМИНОВИЧ

Статья в формате PDF 115 KB...

01 06 2021 10:43:50

ИСПОЛЬЗОВАНИЕ ЛЕСНЫХ РЕСУРСОВ

Статья в формате PDF 269 KB...

30 05 2021 14:27:49

ЛЕД И ЛЕДНИКИ

Статья в формате PDF 279 KB...

25 05 2021 7:40:53

СОЦИОЛОГИЯ УПРАВЛЕНИЯ

Статья в формате PDF 248 KB...

21 05 2021 9:53:31

УСЛОВИЯ ЭФФЕКТИВНОСТИ БЛОЧНО-МОДУЛЬНОГО ОБУЧЕНИЯ

Статья в формате PDF 157 KB...

20 05 2021 8:11:27

ФОРМИРОВАНИЕ СИСТЕМЫ МЕНЕДЖМЕНТА КАЧЕСТВА В ВУЗЕ

Статья в формате PDF 146 KB...

16 05 2021 5:47:48

ОПРЕДЕЛЕНИЕ ФАКТОРОВ РИСКА АТЕРОСКЛЕРОЗА

Статья в формате PDF 114 KB...

05 05 2021 6:55:14

УНИВЕРСИТЕТСКИЕ ПРОБЛЕМЫ НАУКИ И ОБРАЗОВАНИЯ

Статья в формате PDF 104 KB...

04 05 2021 23:55:33

АУДИТ ТУРИСТСКИХ ОРГАНИЗАЦИЙ (учебное пособие)

Статья в формате PDF 107 KB...

27 04 2021 7:58:27

Еще:
Обзоры -1 :: Обзоры -2 :: Обзоры -3 :: Обзоры -4 :: Обзоры -5 :: Обзоры -6 :: Обзоры -7 :: Обзоры -8 :: Обзоры -9 :: Обзоры -10 :: Обзоры -11 ::

Последовательность подготовки научной работы может быть такой:

Выбор темы. Это важный этап. Во-первых, тема должна быть интересна не только вам, но и большинству слушателей, которым вы будете её докладывать, чтобы вы видели заинтересованность в их глазах, а не откровенную скуку.

Выбор целей и задач своей научной работы. То есть, нужно сузить тему. Например, тема: «Грудное вскармливание», сужение темы: «Грудное вскармливание среди студенток нашего ВУЗа». И если общая тема мало кому интересна, то суженная до рамок собственного института или университета, она становится интересной практически для всех слушателей. Целью может стать: «Содействие оптимальным условиям вскармливания грудью детей студентов нашего ВУЗа», а задачей — доказать, что специальные условия, созданные для кормящих студенток, не помешают их успеваемости, но уменьшат количество пропусков, академических отпусков и способствуют выращиванию здоровых детей — нашего будущего. Понятно, что эта тема подходит для студентов медицинских и педагогических ВУЗов, но и в других учебных учреждениях можно найти темы, интересные всем.

Разработать методы исследования и сбора информации. В случае с естественным вскармливанием, скорее всего, это будет анкетирование студенток, имеющих детей.

Систематизировать материал и подготовить презентацию.

Подготовиться к выступлению.

Выступить и получить: награду, удовольствие и опыт, чтобы в следующем году выступить ещё лучше и сорвать шквал аплодисментов, стать узнаваемым, а значит — более конкурентоспособным!