🚀 Welcome to MDriven Learn –  MDriven is now on Discord!  Don’t miss the latest Release Notes.
OCLOperators oclSingleton
(Automatically adding template at the end of the page.)
(Adding message template to the top of the page)
Line 1: Line 1:
{{message|Write the content here to display this box}}
There is an operator in OCL you may not know about yet: oclSingleton.
There is an operator in OCL you may not know about yet: oclSingleton.



Revision as of 22:25, 16 June 2024

This page was created by Hans.karlsen on 2017-08-07. Last edited by Edgar on 2025-01-20.

Write the content here to display this box

There is an operator in OCL you may not know about yet: oclSingleton.

Use it like this: Class1.oclSingleton <and follow with operations or navigations on that single instance>

If Class1 does not have an instance at the time of executing the oclSingleton, one is created.

To use this, set the taggedvalue on Class1 “Eco.IsSingleton” to “true”.

It is a very practical design pattern to have a modeled Singleton class – this removes the need for other global variables – like logged-in user, etc. Since the Singleton class can have code-derived attributes and associations, you can pick up important info from the running environment and make it available in the model context. Try it – it will make your code less hairy.

oclSingleton is an operator that helps you implement the Singleton pattern (the pattern states that there is exactly one instance of this class - never more, never less).

If you mark a class with IsSingleton=true, you can use this oclSingleton operator to get access to the only object instance of this class.

Example:

Class: SysSingleton

Common expression: SysSingleton.oclSingleton.CurrentUser.IsAdmin -- this expression looks up the only SysSingleton instance that acts as a Global variable that points out the CurrentUser.

2017-08-07 21h31 37.png
MDriven Chat

How would you like to chat today?

Setting up your conversation…

This may take a few moments