Hola que tal, a continuación explicaré el uso de herencia y polimorfismo en mi proyecto, el sistema de administración de hoteles.
Polimorfismo
[1] Polimorfismo: En programación orientada a objetos el polimorfismo se refiere a la capacidad para que varias clases derivadas de una antecesora utilicen un mismo método de forma diferente.
Al momento solo he utilizado polimorfismo en el uso de el operador + tanto como para sumar, como para declarar la impresión de variables, ya que en java se imprime de la siguiente manera:
System.out.println("Aqui se imprime la variable: "+variable);
No he considerado usar el otro tipo de polimorfismo, para usar métodos con el mismo nombre pero diferentes parámetros, ya que es mas sencillo colocar diferentes nombres a los métodos para diferenciar su funcionamiento, pero en caso de que lo haga será mas adelante.
Herencia
[1] Herencia: A través de ella los diseñadores pueden construir nuevas clases partiendo de una jerarquía de clases ya existente (comprobadas y verificadas) evitando con ello el rediseño, la modificación y verificación de la parte ya implementada. La herencia facilita la creación de objetos a partir de otros ya existentes, obteniendo características (métodos y atributos) similares a los ya existentes.
La herencia es algo importante en mi proyecto, ya que habrá clases que son protegidas y sus métodos deben estar restringidos para solamente ciertos usuarios.
Por ejemplo, la clase Administration hereda de la clase BaseDeDatos ya que es el único que puede realizar modificaciones en la base de datos, modificaciones como: agregar clientes, eliminar clientes, buscar clientes, etc.
Pero también habrá dos tipos de cliente: uno normal con habitaciones normales y ciertos servicios incluidos, y uno especial con "habitaciones de lujo" y ciertas ventajas más. Por esto creo que el cliente normal heredaría del cliente especial, pero solo podría usar ciertos métodos de esta clase.
Referencias:
[1] Wikipedia
Desde la entrada pasada lo detecté, pero no lo había comentado: el hecho de que el administrador sea el único con derecho a modificar no implica necesariamente que el cliente no haga uso de la base de datos. De hecho, cada consulta, aunque no modifique nada, implicaría una interacción con esta clase.
ResponderEliminarLa herencia en cuanto a los clientes me parece, en efecto, natural. Ahí tendería a pensar, además, que tanto el administrador como el cliente son usuarios. Lo que no me quedó claro es lo de las habitaciones de lujo; ahí no sé si lo piensas manejar como un beneficio de los clientes especiales o si la habitación de lujo podría ser en sí una clase (por tanto, ahí podrías heredar de la habitación común).
Calificación: 4.5/5
-Si lo tengo en cuenta, ya en el código actual que tengo los clientes o huéspedes tienen cierto acceso a la base de datos, para consulta de habitaciones disponibles, o para solicitar una extensión del tiempo de estancia, servicio a la habitación etc.
ResponderEliminar-Lo de los especiales serían los que pagan por habitaciones caras, eso sería que tienen derecho a solicitar servicios, extender su tiempo sin confirmación del administrador. Los normales serían solamente consulta y solicitar con confirmación una extensión del tiempo.Esta sería la diferencia entre ellos.
Saludos.