Adapter
Adapter es un patr贸n de dise帽o estructural que permite la colaboraci贸n entre objetos con interfaces incompatibles.
Ejemplo en TypeScript
Supongamos que tienes un sistema que proporciona datos en formato JSON, pero necesitas trabajar con una biblioteca que espera datos en formato XML. Aqu铆 es donde puedes usar un adaptador para convertir los datos de JSON a XML y viceversa.
typescriptCopy code// Interfaz objetivo (Target)
interface XMLParser {
parseXML(): void;
}
// Adaptee (Clase que proporciona JSON)
class JSONData {
public data: any;
constructor(data: any) {
this.data = data;
}
// M茅todo que muestra datos JSON
displayJSON(): void {
console.log("JSON Data:", this.data);
}
}
// Adaptador
class Adapter implements XMLParser {
private jsonData: JSONData;
constructor(jsonData: JSONData) {
this.jsonData = jsonData;
}
// Implementaci贸n del m茅todo de la interfaz objetivo
parseXML(): void {
// L贸gica para convertir JSON a XML
console.log("XML Data:", `<root>${JSON.stringify(this.jsonData.data)}</root>`);
}
}
// Cliente
const jsonData = new JSONData({ name: "John", age: 30 });
jsonData.displayJSON();
const adapter = new Adapter(jsonData);
adapter.parseXML();
Explicaci贸n
XMLParser: Define la interfaz objetivo que el cliente espera usar.
JSONData: Es la clase existente que proporciona datos en formato JSON.
Adapter: Es la clase adaptadora que implementa la interfaz
XMLParser
y utiliza la claseJSONData
para realizar la conversi贸n de datos de JSON a XML.Cliente: Utiliza la clase
JSONData
para mostrar los datos en formato JSON y la claseAdapter
para convertir los datos a XML, permitiendo que ambas interfaces incompatibles trabajen juntas.
Este ejemplo ilustra c贸mo el patr贸n Adaptador puede ser utilizado para integrar sistemas con interfaces incompatibles, permitiendo la reutilizaci贸n de c贸digo y facilitando la interoperabilidad entre diferentes componentes del sistema.
Last updated