En UberX y UberPool sería una buena idea poner un objeto como “Uber” y que tuvieran el atributo “Tipo” en donde se diferencia entre UberX y UberPool
Bienvenida e Introducción
¿Por qué aprender Programación Orientada a Objetos?
¿Qué resuelve la Programación Orientada a Objetos?
Paradigma Orientado a Objetos
Lenguajes Orientados a Objetos
Instalando Visual Studio Code
Diagramas de Modelado
Qué es UML
Orientación a Objetos
Objetos
Abstracción y Clases
Modularidad
Analizando Uber en Objetos
Reto 1: identificando objetos
Programación Orientada a Objetos. Análisis
Clases en UML y su sintaxis en código
Modelando nuestros objetos Uber
¿Qué es la herencia?
Aplicando Herencia a nuestro proyecto Uber
Reto 2: analicemos un problema
Clases, Objetos y Método Constructor
Creando nuestras carpetas iniciales para el curso
Definiendo clases en Java y Python
Definiendo Clases en JavaScript
Objetos, método constructor y su sintaxis en código
Objetos. Dando vida a nuestras clases en Java y Python
Declarando un Método Constructor en Java y JavaScript
JavaScript orientado a objetos, lo más nuevo
Declarando un método constructor en Python
Herencia
Aplicando herencia en lenguaje Java y PHP
Solución del reto de herencia en PHP
Aplicando herencia en lenguaje Python y JavaScript
Otros tipos de Herencia
Reto 4
Encapsulamiento
Encapsulamiento
Encapsulando atributos en Java
Polimorfismo
Generando polimorfismo en Java
Generando polimorfismo en PHP
Cierre del curso
El Diagrama UML de Uber
Conclusiones
Bonus: Qué es la Programación Orientada a Objetos
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
Anahí Salgado Díaz de la Vega
Aportes 188
Preguntas 25
En UberX y UberPool sería una buena idea poner un objeto como “Uber” y que tuvieran el atributo “Tipo” en donde se diferencia entre UberX y UberPool
Si ya tienen Visual Studio Code, pueden descargarse la extensión drawio, que les permite dibujar diagramas UML 😁
Existe una aplicación open source que tiene integrados modelos UML llamada diagrams.net. Capaz les resulta útil.
Velocidad 1,25
Me estaba preguntando por qué no mejor usar una clase llamada “Car” que contenga estos objetos comunes, y que las clases de tipos de autos de Uber heredaran de esa clase Car, o podriamos pasarselas en algún constructor… u otra alternativas es que Car sea una interfaz para Uber… hmmm hay tantas formas de hacerlo jaja
También se puede crear la clase person. Con eso user y driver heredan de person.
Si vienes del curso de Base de Datos, te puede ayudar la metodología de 9 pasos con Barker.
12. Mis apuntes sobre: “Modelando nuestros objetos Uber”
Les comparto el diagrama que hice.
Considero que faltaría la calificación que tiene un conductor en el Objeto “driver” sería un atributo como +score
✨ En esta lección vimos en acción a la abstracción, este nos permitió determinar las propiedades y comportamientos más significativos de los objetos.
Hola¿Alguien me puede decir que paso con el objeto Trip que explicó Anahí en la clase anterior? Tengo mucha curiosidad de como plantearía ese objeto conceptual
Lo que se podría hacer es una clase auto donde estén todos los atributos generales, y que los mismos hereden atributos y comportamientos. Seguramente lo hagamos en alguna de las próximas clases.
les recomiendo ver PRINCIPIOS SOLID.
https://devexperto.com/principio-open-closed/
En mi caso con lo poco que e leido uniria los tipos de clasificaciones de uber y heredaria de una clase general y solo la especializaria para cada modelo en particular. Y tambien un buen analisis de nuestras clases y las relaciones entre ellas nos ahorra muchas horas de programacion ya que el metodo de empezar a programar sin diseñar nunca nos va a permitir ver todos los posibles escenarios y necesidades de la aplicacion.
Apuntes de la Clase:
Modelando nuestros objetos Uber
Para los objetos user y driver se podría crear una superclase persona que tenga los atributos en comun y utilizar herencia.
Ahora con la Herencia eliminaremos la Redundancia de nuestro Análisis de Clases.
En la sección de Archivos y Enlaces encontrarán las imagenes adjuntas de lo analizado esta clase 😉 👉
OBJETOS:
Los objetos siempre tendrán un identificador (id)
_
User
id
Name
document
email
password
Route
id
start [latitud, longitud] - arreglos
end [latitud, longitud] - arreglos
Driver
id
Name
document
email
password
Uber x
id
License
Driver
Passengers
Bland
Model
Uber pool
id
License
Driver
Passengers
Bland
Model
Uber black
id
License
Driver
Passengers
typeCarAccepted [] - arreglo
seatsMaterial [] - arreglo
Uber van
id
License
Driver
Passengers
typeCarAccepted [] - arreglo
seatsMaterial [] - arreglo
Card
id
number
cvv
date
Paypal
id
email
Cash
id
El siguiente paso es algo parecido a normalizar en una base de datos
OBJETO UBER: En lo personal pienso que para ahorrar codigo y hacerlo mucho mas factible a futuro deberia hacerse con una sola clase que trabaje como molde para crear cada tipo de uber, dependiendo de sus atributos y metodos.
Para reforzar sus conocimientos en UML recomiendo el siguiente
http://descargavariable.blogspot.com/2018/01/aprendiendo-uml-en-24-horas-joseph.html
Muy buena la forma en que determino las características de cada objetivo instructora Anahí. Siguiendo el consejo de un instructor de Platzi, cuando estemos desarrollando la aplicación debemos recordar añadirle a los usuarios y conductores los atributos de Login y Username de esta forma se permite en el futuro los cambios de correo electrónico y nombre, sin necesidad de crear otro usuario o conductor. Además de seguridad extra.
Esta muy genial la expliacion so far, lo estoy disfrutando.
Hola, buscando software para crear diagramas UML, me encontré con este, me pareció muy bueno por lo que lo comparto por aca, es gratis y se puede conectar con GItHub.
Lo encuentran aca: https://www.diagrams.net/
Se puede crear una clase persona con los atributos Is, name, document, email, password, y un atributo rol que los clasifique por cliente o conductor
Pueden usar Miro para hacer sus diagramas UML.
veo que existe mucha redundancia.
¿Es necesario tener los atributos id, cuando el documento es único en cada persona?
¡Hola a todos!
Encontré un programado llamado StarUML que me ha servido para realizar los ejercicios de modelado. Se los recomiendo mucho 😄
.
Si te gusta trabajar desde el navegador les recomiendo Diagrams.net, puedes crear tus diagramas sin necesidad de descargar el software.
.
!Nunca paren de aprender¡
vi que no se hizo el análisis del objeto Trip.
creo que se seria este. corrijanme si hay algo mal o falto infomarcion
Trip:
User
Route
Date
Typer of Uber
Driver
Payment method
Amount
Este curso es más agradable en 1.5x
Tengo una pregunta:
¿Qué debo hacer primero para hacer el esquema de mi aplicación?
Increible
que bueno que éste curso es más entendible con la profesora
Tambien se hubiera podido crear una clase Vehiculo el cual tenga los atributos licencia, pasajeros, marca y modelo, y otra clasa llamada Uber o TipoUber la cual tenga atributos referentes al tipo de afiliacion de Uber que tenga.
Para darle un manejo a el conductor y el clente, se crearia un objeto llamado Usuario que se relacion con un TipoUsuario el cual define el Usuario es cliente o es conductor
Excelentes explicaciones anahí salgado, explica muy bien y con pedagogía 😊
Al final te has hecho experta en autos XD
Excelente Profesora.
Sentía redundancia y al final Anahi dijo que lo solucionaría 😃
Me encanta el curso
una herramienta muy util para hacer diagramas
Falta el objeto conceptual TRIP, o en su defecto, ¿donde va?
¡Muy buen ejemplo!
He usado Uber por mucho tiempo ya y no sabia que se podia pagar con paypal tambien, no solo aprendemos de POO sino que tambien de muchas otras cosas mas.
¿acaso no son redundantes las clases user y driver? son exactamente identicas. ¿Que sucede cuando una misma persona es en un momento conductor y en otro usuario? Creo que falta un indicador de tipo de usuario para saber si en el momento es usuario o conductor
Es interesante y debatible la forma de generar clases, cada compañero/developer tiene un concepto diferente a la hora de plasmar un ejemplo asi…
Explorando herramientas para hacer diagramas, encontré varias en los aportes de muchos compañeros para empezar a explorar, encontré un esto y espero les sirva:
uso plantuml en markdown
Para modelar los objetos en el sistema de Uber, podemos utilizar un diagrama de clases UML. Aquí te presento un ejemplo de cómo podríamos diseñar el diagrama de clases para el sistema de Uber con los objetos User, Driver, Route, y los distintos tipos de Uber:
También podemos ver las relaciones entre estos objetos, como la asociación entre User y Route, y entre Driver y Route. Además, podemos ver la composición entre Route y las distintas clases de Uber.
Este diagrama UML nos ayuda a comprender mejor la estructura y las relaciones del sistema de Uber, lo que nos permite diseñar y desarrollar el sistema de una manera más efectiva y eficiente.
Hasta el momento me ha gustado mucho
https://www.umlet.com/umletino/umletino.html
Hola, esta aplicación web es buena para hacer todo tipo de graficos incluidos los UML, diagramas de clase entre otros
Considero que no siempre es necesario un identificador (sintético), ya que al diseñar una base de datos, los objetos pueden contener un atributo o combinación de ellos que constituyan ese identificador único (natural).
RESUMEN HASTA AQUÍ
La programación orientada a objetos es un paradigma de programación que se basa en la definición de clases y objetos, y en la organización del código en torno a estas entidades. En este curso, se han visto temas como la abstracción, la herencia, el polimorfismo y el encapsulamiento, que son los pilares de la programación orientada a objetos.
Además, se ha visto cómo declarar propiedades y métodos en los cuatro lenguajes que se están viendo en el curso (Java, JavaScript, PHP y Python), así como cómo analizar un problema y extraer los objetos que lo componen. También se ha trabajado en la plasmación de objetos en diagramas de modelado UML, y en la modularidad del código.
En general, la programación orientada a objetos permite organizar el código de una manera más clara y mantenible, y facilita la reutilización y la expansión del mismo.
Mis notas
Modelando nuestros objetos Uber
User Driver Route
id id id
name name start: (2)
document document end: (2)
email email
password password
UberX Uberpool Uberblack Ubervran
id id id id
license license license license
driver driver driver driver
passangers passangers passangers typeAcepted()
brand brand typecarAcepted() seatsMaterial ()
model model seatsMaterial ()
Card Paypal Cash
id id id
number email
cvv
date
Para mi vehículo debería ser una clase de la cual se desprenden cada uno de los tipos de vehículo, igualmente el usuario, del cual se desprenden los tipos de usuario que serían los objetos…
PODRIA SER CLASES:
persona
vehículo
pago
ruta
Considero que debe de agregarse en ‘card’, un atributo de:
stampCard[2]
Refiriéndose si usa Mastercard o visa.
¿Cuál es el propósito de manejar ID en cash? Se supone que el efectivo es idéntico entre sí.
Información resumida de esta clase
#EstudiantesDePlatzi
Importante que todos nuestros objetos tenga id
Podemos empezar definiendo todos los atributos para cada objeto
Utilicemos el inglés lo más que podamos
RESUMEN CLASE 14:
MODELANDO NUESTROS OBJETOS
I.- NUESTROS OBJETOS
USER
id
name
document
password
DRIVER
id
name
document
password
ROUTE
id
start:[]
end:[]
UBER X
id
license
driver
passengers
brand
model
UBER POOL
id
license
driver
passengers
brand
model
UBER BLACK
id
license
driver
passengers
typeCarAccepted []
seatsMaterial []
UBER VAN
id
license
driver
passengers
typeCarAccepted []
seatsMaterial []
CARD
id
number
cvv
date
PAYPAL
id
CASH
Me parece o la profe se olvido el objeto “TRIP” ??? jejeje
Adjunto el diagrama !
en el caso de haber pensado en los tipos de uber como los atributos de un objeto “auto”, o en los tipos de pagos como objeto “pago”, obviamente estaríamos evitando repetir código
Dale me gusta a este comentario si previste que había redundancia y se puede abordar de una manera más compacta el diagrama 😄
Atributos: algunos conceptos
• Las clases tienen atributos que representan alguna propiedad de la clase que comparten todos los objetos de esa clase.
• Un atributo es una propiedad nombrada de una clase, que describe un rango de valores que puede tomar esa propiedad en las instancias. – Por ejemplo, nombre, edad o peso son atributos de objetos Persona.
• Cada nombre de atributo es único dentro de una clase, pero cada atributo tiene un valor para cada instancia de la clase. – Diferentes instancias de objetos pueden tener los mismos o distintos valores para un atributo dado. – La identidad implícita del objeto permite distinguir objetos en que todos los valores de los atributos sean idénticos
Pueden usar StarUML para el diagramado.
Alerta de spoiler: Se puede se puede ahorrar còdigo y eliminar redundancia haciendo una clase Auto, por ejemplo, y que esta clase tenga hijos (herencia): UberX, UberPool, UberVan. A su vez que estas clases implementen una interfaz para que cada una ejecute los verbos de forma distinta (polimorfismo).
Cuando definen la clase uber black, se podria poner la advertencia de los autos aceptados con sus caracteristicas especiales que lo diferencian de otros servicios de uber
GRAN ANALIZIS
Los ID son esenciales para a futuro poderlos meter en una base de datos y utilizarlos de esta forma
Seria correcto entonces tambien crear una clase Person y incluir user y driver, una clase uber y especificar cada modelo, y un objeto route.
Creo que los Uber deberían tener un atributo position:[] al igual que route con esto se podría ir actualizando la ubicación del Uber en el mapa.
Siendo Uber, yo pondría cellphone como un atributo necesario en user y driver
Mi diagrama:
Basado en algunos diagramas de los compas porque no sabia hacerlo al principio.
podríamos agregar un objeto pay que incluya los atributos tipos donde diferenciemos entre efectivo, credito o Paypal.
Esta clase me recordó mucho los diagramas de entidad relación de una base de datos.
Por ahí siento que otro atributo importante tanto para driver como user sería su número telefónico, que hoy en día sabemos que lo usan y es clave en el servicio, por lo demás de acuerdo.
del primer dibujo de las propiedades y elementos de los objetos involucrados en el servicio Uber se analiza las características a las que se ocupan en el servicio
en el id en user se puede utilizar lo que es el DNI ya que es un identificativo único
Clases: es el molde del pastel
Atributos: los ingredientes del pastel
Métodos: los pasos para hacer el pastel
Con el Sistema de adopción
Yo agregaría a la clase Driver un atributo que contenga la información del conductor como el id del documento de conductor de su pais respectivo e incluso agregaría una clase pais para poder corroborar la información de cada conductor.
PD: Tal vez asocié este paradigma con Bases de datos relacionales hahaha
Aqui aplica el “Divide y Venceras”
Por Buena Práctica, y para posteriormente manejar bases de datos, designar un ID a cada objeto que lo hace único.
Excelente Clase y varias clases repiten datos o son iguales con diferente nombre
En la manera en que está explicando la profesora, ¿Cómo se debería escribir el atributo nam?
feliz halloween
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?