oop — Как кодировать квалифицированную ассоциацию в PHP?

Обратите внимание, что я не эксперт в UML.

Обычно я думаю, что диаграмма классов (на более поздней стадии разработки) параллельна коду реализации. Я хочу знать, как реализовать квалифицированную ассоциацию в PHP (или другом языке ООП, таком как Java). Может быть, это только концепция в UML, которая может быть реализована любым способом, или она предназначена для реализации четко определенным образом. Я просто знаю, что значение квалификатора используется для выбора целевых объектов.

Вот пример квалифицированной ассоциации из книги «Справочное руководство по языку унифицированного моделирования, издание 2 °»

Пример квалифицированной ассоциации

Вопросы:

Должно ли значение (или значения) квалификатора походить на атрибут (или атрибуты) квалифицированного класса?

Могу ли я избежать использования квалифицированных ассоциаций? Зачем?

Как кодировать квалифицированную ассоциацию как это из примера? Существует несколько способов сделать это? Что лучше?

Извините, если это не ясно, или излишний, или глупый вопрос. Я ценю помощь.

2

Решение

Мои времена PHP слишком давно, чтобы помнить правильный синтаксис, но в основном квалификатор обозначает ключ, который вы бы использовали для поиска чего-либо в хэш-карте (ассоциативный массив).

Постскриптум Это может быть примером:

$customers = array(
"account" => $person,
...
);

Так что внутри вашего Bank класс ты смотришь вверх Person с ключом account в $customers массив. Обратите внимание, что имя последнего взято из контекста и явно не указано в UML. Нет необходимости в квалификаторе. Это просто дополнительная информация, которую UML-моделлер передает программисту. Также нет никакого специального способа, но вышеупомянутый, вероятно, был бы наиболее удобным в PHP. И, конечно же, поскольку ваша фотография является лишь выдержкой, это имеет смысл, если у вас есть несколько ключей (например, credibility и другие вещи, которые могут быть интересны дополнительно в $customers массив).

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]