Duda manejo estados de una transmision #522
Replies: 4 comments
-
Una sugerencia: procurá usar nombres más expresivos. En un sistema es muy posible que haya varias abstracciones que representen estados de algo, de ahí que un nombre mejor sería |
Beta Was this translation helpful? Give feedback.
-
Es un caso bastante borde, a decir verdad. La idea del patrón state es que puedas cosificar estados, asignarles comportamiento polimorfico propio de cada uno y, sobre todo, utilizar el polimorfismo para implementar la lógica de transición entre estados. En tu propuesta, todo esto está presente, pero en casos en que la lógica de transición es ínfima (el estado en curso solo transiciona a finalizado y sin aplicar ninguna lógica compleja), el comportamiento propio de cada estado parece solo limitarse a hacer una tarea o fallar, y solo hay dos estados. Teniendo en cuenta todo esto, así como está planteado tu diseño, la estructura del patrón state no es incorrecta, pero no parece particularmente necesaria: introduce la complejidad propia de esta estructura sin aportar gran extensibilidad. |
Beta Was this translation helpful? Give feedback.
-
Tené en cuenta que en la cursada no trabajamos los principios SOLID; consideramos más importante justificar y analizar en términos de cualidades de diseño, que dan un marco más general. |
Beta Was this translation helpful? Give feedback.
-
gracias! |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Buenas noches, como va? ya se que estamos muy cercanos a la fecha del parcial pero queria plantear una duda que me surgio mientras repasaba mi modelado de las transmisiones y sus estados.
Si defino una interfaz Estado y luego como implementaciones concretas el
EstadoEnCurso
y elEstadoFinalizado
, para que luego la transmision pueda tratar a estos polimorficamente (entiendo que esto es el patron state). Hay alguna forma mas limpia de realizar esto que lanzando excepciones cuando se le quiere mandar los mensajesunirA(Usuario)
,removerA(Usuario)
,finalizar()
a elEstadoFinalizado
.Pregunto esto porque me parece la mejor solucion, pero a la vez siento que estoy rompiendo el principio de Sustitución de Liskov....
Dejo el codigo:
Beta Was this translation helpful? Give feedback.
All reactions