Jump to: navigation, search

Namespace


Basic definition

A namespace is an abstract container or environment created to hold a logical grouping of unique identifiers or symbols (i.e., names). An object defined in a namespace is associated only with that namespace. The same identifier can be independently defined in multiple namespaces. That is, the meaning associated with an identifier defined in one namespace may or may not have the same meaning as the same identifier defined in another namespace.


For example, Bill works for company X and his employee ID is 123. Jane works for company Y and her employee ID is also 123. The reason Bill and Jane can be identified by the same ID number is because they work for different companies. The different companies in this case would symbolize different namespaces. There would be serious confusion if the two people worked for the same company, and still had the same employee ID. For instance, a paycheck issued to employee ID 123 would not identify which person should receive the check.

In large computer programs or documents it is not uncommon to have hundreds or thousands of identifiers. Namespaces provide a mechanism for hiding local identifiers. They provide a means of grouping logically related identifiers into corresponding namespaces, thereby making the system more modular.

Usage in UBIK®

Namespaces are stored on the Namespace property of several UBIK® class types, such as MetaClasses. While there is no direct functionality behind this property, some controls in UBIK® Studio use it for structuring purposes, i.e. the Class Browser.