Antonio Jacal
//Interface de solicitud
class InterfaceSolicitud{
enviarSolicitud(){
//Metodo para mandar a la base de datos una solicitud
}
}
//Componente concreto
export default class SolicitudEvento {
//Atributos
constructor(nombre, recinto, fecha, direccion,hora, boletos) {
this._nombre = nombre;
this._recinto = recinto;
this._fecha = fecha;
this._direccion = direccion;
this._hora = hora;
this._boletos = boletos;
}
//SETTERS
set setnombre(nombre){
this._nombre=nombre;
}
set setfecha(fecha){
this._fecha=fecha;
}
set sethora(hora){
this._hora=hora;
}
set setrecinto(recinto){
this._recinto=recinto;
}
//GETTERS
enviarSolicitud(){
return new GestorBaseDeDatos()
}
}
// Decorador
class DecoradorSolicitud {
DecoradorSolicitud(Solicitud){
this._solicitud = Solicitud
}
enviarSolicitud(){
return this._solicitud.enviarSolicitud()
}
}
//Concreto A
class DecoratorSolicitudAlta {
DecoratorSolicitudAlta(solicitud){
this._decorator = solicitud
}
enviarSolicitud(){
var bd = this._decorator.enviarSolicitud()
bd.guardarSolicitud(this._decorator)
}
}
//Concreto B
class DecoradorSolicitudBaja{
DecoratorSolicitudBaja(solicitud){
this._decorator = solicitud
}
enviarSolicitud(){
var bd = this._decorator.enviarSolicitud()
var motivo = "Contingencia sanitaria"
bd.guardarSolicitud(this._decorator, motivo)
}
}
//Concreto C
class DecoradorSolicitudCambio {
DecoradorSolicitudCambio(solicitud){
this._decorator = solicitud
}
enviarSolicitud(){
var bd = this._decorator.enviarSolicitud()
this._decorator.nombre = "Luis Miguel World Tour"
this._decorator.recinto = "Bellas Artes"
this._decorator.fecha = "12/03/2022"
this._decorator.direccion = "Av. Juárez S/N, Centro Histórico de la Cdad. de México"
this._decorator.hora = "20:30"
this._decorator.boletos = 700
bd.guardarSolicitud(this._decorator)
}
}
Código implementado en Javascript para un proyecto de creación y venta de boletos en linea, el cual se implemento para extender la funcionalidad de las solicitudes dependiendo de su tipo
Comments (0)