2009-09-28 4 views
3

В настоящее время я пытаюсь нарисовать диаграмму классов из нескольких пространств имен в C++.Как нарисовать область/область применения метода/переменной области в UML?

В настоящее время некоторые переменные и методы внутри пространства имен (свободные, а не части классов) являются частью API пространства имен, а другие являются внешней частью API некоторых классов (например, оператор < < и те).

Я только хочу представить эти методы/vars, которые выставляют API пространства имен, но я не могу найти способ сделать это со стандартными инструментами UML и не могу найти никакой соответствующей информации в Интернете.

любая подсказка?

ответ

1

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

1

UML позволяет проектировать ориентированное приложение объекта. Диаграмма классов, поскольку имя является явным, представляет классы и ссылки между ними в приложении.

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

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

+1

На самом деле, [методы, не являющиеся членами, улучшают инкапсуляцию объектов] (http://www.ddj.com/cpp/184401197), его проблема не связана с объектно-ориентированным, это может быть ограничение UML, поэтому Я спрашиваю, на случай, если я что-то пропустил. –

+0

В его случае это ограничение UML. Мое предложение состояло в том, чтобы позволить ему представлять функции на диаграмме без изменения его кода (но, возможно, мое объяснение было неоднозначным) –

Смежные вопросы