// El modo adaptador define una interfaz que el cliente espera, de modo que dos clases que no coinciden con la interfaz original pueden trabajar juntas
interfaz AA {
doA: () => cadena;
}
interfaz BB {
doB: () => cadena;
}
interfaz CC {
doC: () => cadena;
}
clase aaa implementa AA {
oraciónA (): cadena {
devuelve "AA";
}
}
clase bbb implementa BB {
doB (): cadena {
devuelve "BB";
}
}
// Componentes específicos
clase cccc implementa CC {
doC (): cadena {
devolver "CC";
}
}
class shiyongzhe {
aa privado: AA = nulo;
bb privado: BB = nulo;
cc privado: CC = nulo;
privado a: cadena = nulo;
privado b: cadena = nulo;
privado c: cadena = nulo;
constructor (aa: AA, bb: BB, cc: CC) {
this.aa = aa;
this.bb = bb;
this.cc = cc;
this.a = this.aa.doA ();
this.b = this.bb.doB ();
this.c = this.cc.doC ();
}
getInfo1 (): string {
devuelva esto. a;
}
getInfo2 (): cadena {
devuelva esto. b;
}
}
deje aa = nuevo aaa ();
sea bb = new bbb ();
deje ccc = nuevo cccc ();
deje cobj: shiyongzhe = nuevo shiyongzhe (aa, bb, ccc);
YBLog.log ("Prueba", cobj.getInfo1 ());
// Ventajas: Las clases no relacionadas se pueden mezclar una vez, siempre que se adapten a este rol. Aumente la transparencia de la clase, mejore la reutilización y la flexibilidad de la clase.
// Desventajas: La solución es el problema del proyecto en servicio.