Операции и методы

Операция – функция или процедура которая может быть применена к объектам классов.

File +filemNane +sizeinBytes +lastupdate +print()
GeometricObject +color +position +move(delta: vector) +select(p: point) +rotate(in angle: float = 0.0)
Person +name:string +birthday: string +change ob() +changeAddress()

Все объекты одного класса имеют общий писок операций. Одна и та же операция может быть применена к разным классам. Такая операция называется полиморфной, т.е. в разных класса она может принимать разные формы.

Метод – это реализация операций в конкретном классе.

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

Сигнатура – число и тип аргументов, а так же тип возвращаемого методом значения.

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

Операция указывается в третьем отделе, название аналогично названию атрибута. После названия в скобочках могут быть указаны аргументы(названия, его тип, и значение по умолчанию) их направление(in – входной аргумент, out – выходной аргумент, in-out - входной-выходной аргумент) через двоеточие записывается тип возвращаемого значения. Отделы с аргументами и операциями являются не обязательными, отсутствие отделов говорит о том что на данной диаграмме атрибуты и операции не представлены(на самом деле они могут быть) Если разделы представлены и являются пустыми, значит атрибутов и операций и классов нет. Связи и ассоциации позволяют устанавливать отношения между объектами и классами соответственно.

Связь – это физическое или концептуальное соединение между объектами, экземпляр ассоциации.

Ассоциация – это описание группы связей, обладающих общей структурой и общей семантикой. Связи являющиеся экземплярами ассоциаций, соединяют объекты тех классов, которые соединены между собой этой ассоциаций. Ассоциации описывают множество потенциальных связей. Точно так же как класс описывает множество объектов. Связи и ассоциации обычно присутствуют в постановке задачи в виде глаголов.

………………………………………….ГРАФИК АССОЦИАЦИЙ……………………………..

Диаграмма классов показывает, что человек может быть держателем акций неопределенного числа компаний, и акции компании могут быть у неопределенного числа людей. Связь обозначается линией между двумя объектами(бинарные ассоциации). Название ассоциаций указывать не обязательно, за исключение тех случаев когда между классами есть несколько ассоциаций.

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

Ассоциации нарушают инкапсуляцию, поскольку они соединяют разные классы и не могут быть скрыты внутри класса.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: