How do I mark a class as a singleton in UML?

2019-04-18 06:19发布

问题:

I have an UML diagram on which I want to mark some classes as singletons (because they are). How do I do that? Do I invent a new stereotype or do I just add a comment or are there some existing means to do that?

回答1:

Craig Larman's "Applying UML and Patterns" book (3rd edition) gives the following notation for a sequence diagram:

Note that it implies that before calling doA the :Register object manages to get access to the singleton via the standard way, e.g., getInstance(). This makes the diagram more agile.

For a class diagram:



回答2:

"What will most clearly represent the concept to your reader."

There is a reasonable example of the basic appearance over on Wikipedia. It shows a private constructor and a public getInstance() method that returns an object of type Singleton. I'd also find a stereotype to be a perfectly reasonable way to make it explicit without requiring your reader to parse the details of the class object.



标签: singleton uml