Categories
General

¿Clases u objetos?

Una de las tareas de un analista de requerimientos es identificar las entidades que han de participar en la solución de un problema y decidir cuales de ellas son clases de objetos y cuales son simplemente instancias (objetos) de alguna clase. A modo de ejemplo, ahí van unos cuantos sustantivos que podrían aparecer en una fase temprana del análisis de un problema. Se trata de decidir si nombran clases u objetos. En el caso de ser una clase, pongo entre paréntesis una posible instancia de ella, y en el caso de ser objeto, una posible clase a la que puede pertenecer.

Entidad Clase Objeto
Leche Pascuala (Industria) OBJETO
Airbus 360 (Avión) OBJETO
Juan Albeniz (Persona) OBJETO
Juego de mesa CLASE (Parchís)
Asignatura POO 9999 (Asignatura) OBJETO
La final del abierto de EEUU
de tenis del año 2009
(Partido de tenis) OBJETO
Fabricante de automóviles CLASE (Seat)
Estudiante de informática CLASE (Juan Albeniz)
El coche con nº de serie
UGA12345678
(Coche) OBJETO
Juego CLASE (Póker)
Ajedrez (Juego de mesa) OBJETO
Avion CLASE (Airbus 360)
Agua Mineral CLASE (Agua de Fuente Limpia)

En general, algo será una clase si puede tener instancias. Será un objeto si es algo único que comparte características con otras cosas similares. Sin embargo, lo que a primera vista podría parecer una clase podría ser en realidad un objeto, y viceversa.

¿Te parecen correctas las decisiones tomadas sobre los ejemplos dados arriba? Si no estás de acuerdo con alguna de las propuestas, deja tu comentario proponiendo alguna alternativa.

By pierre

Coordinador de asignaturas de POO en los estudios de informática de la Escuela Politécnica Superior (Universidad de Alicante).

4 replies on “¿Clases u objetos?”

No me parece del todo correcto lo de arriba, pues creo que para saber si se tratan de OBJETOS o de CLASESE deberíamos saber el contexto en donde nos movemos. Un claro ejompo de esto es lo siguiente. Podríamos pensar que Avión sea un OBJETO de la clase Transporte en un problema en el que tengamos posible transportes: Avión, Barco, coche, triciclo …..

Así es, el contexto (o dominio) de la aplicación a desarrollar determinará si el concepto que estamos manejando se refiere a un único objeto o a un conjunto de ellos (a una CLASE de objetos). En el caso de ‘Avión’ deberíamos preguntarnos si en el dominio de nuestra aplicación es relevante poseer información sobre aviones individuales o en realidad ‘Avión’ se refiere a un tipo de transporte.

Por ejemplo, en el caso de que debamos conocer detalles sobre cada uno de los aviones de la flota de una compañía aérea, atributos como la matrícula del avión, el número de horas de vuelo realizadas, o las revisiones que se le han practicado, tendríamos a ‘Avión’ como CLASE cuyas instancias son los aparatos propiedad de la compañía. Sin embargo, si el dominio es el de una agencia de viajes, donde Avión es uno de los posibles medios de transporte a utilizar, Avión sería una INSTANCIA (OBJETO) de una clase MedioDeTransporte.

No termino de comprender la diferencia de los conceptos. Suena a división entre objeto común y propio, pero en ese caso no puedoe star de acuerdo con la primera “leche pascuala” , ¿por qué no es clase, como el agua mineral?

@Aireacondicionado, ‘Leche Pascuala’ es en este ejemplo una instancia de la clase ‘Industria’, en un contexto, p. ej., de un software de logística. Sólo existe una empresa llamada ‘Leche Pascuala’, desde el punto de vista de esa aplicación, que es una instancia de la clase ‘Industria’.

Sin embargo, ‘Agua Mineral’, en el contexto de una aplicación de inventario de un supermercado, p. ej., representa al conjunto de todas las marcas de aguas minerales, las cuales, como ‘Agua de Fuente Limpia’, serán instancias de la clase Agua Mineral, que probablemente derivará de otra clase más general llamada ‘Producto’ o similar.

Comments are closed.