Este patrón se puede considerar una variante del singleton o instancia única, con un propósito, más específico.
Es común, en este patrón, que se aplique varias veces, en una misma aplicación.
En el proceso de desarrollo de software, existen varias metodologías o paradigmas, para organizar el código fuente en componentes, agrupándolo y separándolo en varios componentes, en ocasiones, como clases u objetos.
Para poder considerar un objeto singleton, o cualquier agrupamiento de código relacionado, que está implementando este patrón de diseño, las siguientes características deben estar presentes, en dicho código fuente: Tanto los espacios de trabajo y los módulos, permiten agrupar entidades relacionadas con un identificador único, y en algunas situaciones intercambiarse.
Las clases son utilizadas, a veces, también como Espacios de Trabajo, e incluso, combinados.
En algunos lenguajes de programación que no soportan espacios de trabajo (por ejemplo: versiones anteriores de PHP, JavaScript o C), pero sí implementan clases y objetos; las clases son utilizadas por sí mismas, permitiendo acceso a sus elementos, sin tener que instanciar directamente cada clase en objetos.
Note, que en algunos casos, el patrón de diseño adaptador o envoltorio, ha sido también aplicado, pero no es un requisito.
Soporta diversos escenarios, en donde una clase u objeto, puede ser tratado como datos estructurados y procedimentales.