Понедельник, 23.06.2025, 23:07
Приветствую Вас Гость | RSS

Основные принципы ООП

Меню сайта
Block title
Block content
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Форма входа

Каталог статей

Главная » Статьи » Логическая составляющая объектной модели

Ассоциация

   Желая автоматизировать розничную торговую точку, мы обнаруживаем две абстракции - товара и продаж. Класс Товар - это то, что мы продали в некотором соглашении, а класс Продажа - само соглашение, в котором продано несколько товаров. Нужно понимать, что ассоциация работает в оба бока: задавшись товаром, можно выйти на соглашение, в котором он был продан, а пойдя от соглашения, найти, что было продано.

   Это ассоциация вида "один-к-многим": каждый экземпляр товара относится лишь к одной последней продаже, в то время как каждый экземпляр Продажа может указывать на совокупность проданных товаров.

   Как показывает этот пример, ассоциация - смысловая связь. За умалчиванием, она не имеет направления (если не обсуждена другая ассоциация, как в данном примере, имеет в виду двусторонняя связь) и не объясняет, как классы общаются друг с другом (мы можем лишь отметить семантическую зависимость, отметив, какие роли классы играют друг для друга).

  Однако именно это нам нужно на ранней стадии анализа. Следовательно, мы фиксируем участников, их роли и (как будет сказано дальше) мощность отношений.  

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

   Отношения "многие к многим" тоже нередки. Например, каждый объект класса Покупатель может инициировать транзакцию с несколькими объектами класса Торговый Агент, и каждый торговый агент может взаимодействовать с несколькими покупателями.


Категория: Логическая составляющая объектной модели | Добавил: Admin (05.01.2010)
Просмотров: 1254 | Рейтинг: 1.0/1
Всего комментариев: 0
Имя *:
Email *:
Код *:

All rights reserved. © 2025
Конструктор сайтовuCoz