Version 2 (modified by 14 years ago) (diff) | ,
---|
Clases de MMS
Introducción
MMS está diseñado y construido utilizando la programación orientada a objetos de TOL. Las clases de MMS están agrupadas, como el resto del sistema, en torno a módulos dedicados a distintos aspectos de la modelación.
Sin embargo, las clases de MMS disponen de un diseño y unas características comunes. A continuación describimos estas características con el fin de facilitar la comprensión y el manejos de los objetos (sus instancias) en MMS.
Nombres de las clases
Todas las clases de MMS, de acuerdo a la nomenclatura TOL de clases, comienzan con el símbolo @
.
Para la elección de sus nombres se han utilidado los siguientes criterios:
- Usar los términos en inglés.
- No usar abreviaturas (salvo algunas excepciones).
- Hacer uso de mayúsculas para la separación de palablas, al estilo CamelCase.
- A pesar de la ambigüedad que esto pueda producir, construir del mismo modo tanto los nombres compuestos como los de clases derivadas. Por ejemplo:
@HierarchyTerm
ha de leerse como "término de la jerarquía" mientras que@ParameterMissing
ha de leerse como "parámetro de tipo omitido".
Las clases de MMS están definidas en el nameblock MMS
del paquete, de modo que el usuario de MMS podrá acceder a ellas anteponiendo el nombre del paquete MMS::
, sin embargo en la documentación usaremos indistintamente un nombre (@ClassName
) u otro (MMS::@ClassName
) asumiendo que el usuario está familiarizado con este punto.
Descripción
Los objetos de MMS están diseñados para su utilización por parte de los usuarios como si de un nuevo conjunto de objetos TOL se tratase. De modo que una gran parte de sus métodos están diseñados para interaccionar con ellos, tanto para obtener información como para modificarlos.
Desde el punto de vista del desarrollador de MMS, una clase está compuesta por:
- Atributos: objetos TOL de sólo lectura que contienen la información elemental de cada objeto o instancia de la clase.
- Métodos: funciones TOL que permiten acceder o modificar la información de estos atributos, así como lanzar algunos mecanismos o procesos.
- Métodos de clase: métodos declarados como
Static
que están a disposición desde la clase (sin necesidad de instancia alguna) como puede ser los constructores de objetos.
Desde el punto de vista del usuario de MMS, los objetos pueden verse como entidades capaces de gestionar la información correspondiente al concepto de la modelación al que representan.
Los atributos de los objetos no están diseñados para su edición directa, de modo que para ello se facilitan métodos tanto de lectura como de escritura.
Por ejemplo, para un atributo _.name
dispondríamos de dos métodos GetName(?)
y SetName(newName)
para leerlo o modificarlo respectivamente.
Atributos de usuario
A menudo hay atributos que no deben ser modificados, digamos que son de "sólo lectura" y no disponen de métodos de escritura o edición. Aún más en ocasiones hay "atributos" que no tienen su par entre los atributos de la clase, pero que pueden leerse o incluso modificarse mediante los métodos del objeto. De este modo, definimos como atributos de usuario a aquellos atributos (con su par en la clase o no) que se ponen a disposición del usuario a través de métodos de lectura y escritura.
En general hablaremos de atributos pudiéndonos referirnos tanto a unos como a otros, de modo que es importante que seamos conscientes de esta doble naturaleza de los atributos en MMS. Salvo que se indique explícitamente, una pista que puede ayudarnos a entender de cual de ellos se trata es el nombre con el que nos estemos refiriendo a él: (i) si estamos usando su nombre "sólo lectura" (comenzado en minúscula y precedido por _.
) o (ii) si por el contrario usamos su nombre de usuario (comenzado en mayúscula). Por ejemplo: _.name
sería el atributo de la clase y Name
sería el atributo de usuario.
Podemos distinguir dos tipos de atributos en los objetos de MMS.
Las clases de MMS disponen de: