Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Отношения между классами

Читайте также:
  1. Exersice II. Найдите соответствие между словосочетаниями в колонках А
  2. I Международный многожанровый фестиваль на острове Тасос (Греция)
  3. I. Стандарты Международного телекоммуникационного союза электросвязи - Сектор стандартизации (ITU-T)
  4. II. Поддержка и обеспечение взаимопомощи деятельности школ Международного Бакалавриата
  5. Japan Tobacco International (JTI) — международная табачная компания.
  6. VIEWSONIC СТИРАЕТ ГРАНИЦЫ МЕЖДУ МОБИЛЬНЫМИ УСТРОЙСТВАМИ И НАСТОЛЬНЫМИ КОМПЬЮТЕРАМИ С НОВЫМ СМАРТ-ДИСПЛЕЕМ VSD241 НА ОПЕРАЦИОННОЙ СИСТЕМЕ ANDROID
  7. А) Выработка международно-правовой основы борьбы с коррупцией.

1.4.1. Типы отношений. Рассмотрим сходства и различия между следующими классами: цветы, пионы, красные розы, желтые розы, лепестки и божьи коровки. Мы можем заметить следующее:

- пион – цветок;

- роза - (другой) цветок;

- красная и желтая розы – розы;

- лепесток является частью обоих видов цветов;

- божьи коровки питаются вредителями, поражающими некоторые цветы.

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

Отношения между классами могут означать одно из двух. Во-первых, у них может быть что-то общее. Например, и пионы, и розы - это разновидности цветов: и те, и другие имеют ярко окрашенные лепестки, испускают аромат и так далее. Во-вторых, может быть какая-то семантическая (смысловая) связь. Например, красные розы больше похожи на желтые розы, чем на пионы. Но между розами и пионами больше общего, чем между цветами и лепестками. Также существует симбиотическая (приносящая взаимную пользу) связь между цветами и божьими коровками: божьи коровки защищают цветы от вредителей, которые, в свою очередь, служат пищей божьим коровкам.

Существует три основных типа отношений между классами. Во-первых, это отношение «обобщение/специализация» (общее и частное, «is-a»). Розы суть цветы, что значит: розы являются специализированным частным случаем, подклассом более общего класса «цветы». Во-вторых, это отношение «целое/часть» («part of»). Так, лепестки являются частью цветов. В-третьих, это семантические, смысловые отношения, ассоциации. Например, божьи коровки ассоциируются с цветами - хотя, казалось бы, что у них общего. Или вот: розы и свечи - и то, и другое можно использовать для украшения стола. Существует большое разнообразие семантических отношений между классами.

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

- ассоциация

- наследование

- агрегация

- использование

- инстанцирование

- метакласс.

Рассмотрим отношения между классами более подробно.

1.4.2. Ассоциация. Из шести перечисленных видов отношений наиболее общим и неопределенным является ассоциация. Обычно системный аналитик констатирует наличие ассоциации и, постепенно, уточняя проект, превращает ее в другую, более специализированную связь.

 

Ассоциация

Рис. 1.2

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

Вот две выдержки из объявления соответствующих классов:

 

Class TSale;


Дата добавления: 2015-10-29; просмотров: 114 | Нарушение авторских прав


Читайте в этой же книге: Отношения между объектами | TransmitAmperes(); | Glossary of Nadsat Language | I was a wandering sheep. | I did not love... | Protestantism and Capitalism: A Causal Connection? | The Working of Competitive Markets | The Impact of Smith on Policy | Causes of the Wealth of Nations | Determinants of the Wealth of a Nation |
<== предыдущая страница | следующая страница ==>
Virtual float temperatureAt(int Minute);| Double dubFuelCell2Amperes();

mybiblioteka.su - 2015-2024 год. (0.009 сек.)