Como dijo en un vídeo anterior, en la programación orientada a objetos podemos distinguir dos tipos de objetos: Físicos y Conceptuales. Ambos tipos tienen: propiedades (atributos) y comportamientos (métodos).
Entonces, por ejemplo, en este caso de estudio tenemos los siguientes tipos de objetos fiscos:
-
User (que tiene un nombre, una localización y métodos como "llamar uber", "cancelar uber" "pagar uber").
-
Uber x, Uber pool, Uber Black, Uber Van (tienen atributos como cantidad maxima de pasajeros, si es un auto que se puede compartir, si es un auto premium y métodos como: ir a buscar user, hacer viaje, cobrar viaje).
-
Route: Sigue siendo algo físico algo que puede verse en por ejemplo el mapa al seleccionar el destino. Esta routa tendra propiedades como: Punto de inicio y destino.
Y también tendremos un objeto conceptual: Trip.
Pero, ¿Por qué es un objeto? Porque este trip va a tener propiedades, estas propiedades van a ser un conjunto de los objetos anteriores, es decir, un trip/viaje va a tener: un usuario que pide el viaje, una ruta, un auto, un conductor y un precio, también tendremos otras propiedades como: iniciado y finalizado. Y podriamos tener un metodo como "modificar" o "cancelar"
¿Y porque es conceptual? Es conceptual porque no es algo tangible directamente. Explicado facilmente: Vos podes ver un auto, podes ver una ruta, un conductor...pero: no podes ver un viaje. El viaje es simplemente un concepto para englobar la interacción de otros objetos necesarios para formarlo.
Podriamos imaginar objetos conceptuales como: Carrera, Partido de Fútbol, Sesión de usuario....