Facade
typescriptCopy code// Subsistema 1
class Authentication {
login(username: string, password: string): boolean {
// Lógica de autenticación
return true; // Supongamos que la autenticación siempre es exitosa para este ejemplo
}
logout(): void {
// Lógica de cierre de sesión
}
}
// Subsistema 2
class DataStorage {
saveData(data: any): void {
// Lógica para guardar datos
}
getData(): any {
// Lógica para obtener datos
return null;
}
}
// Facade
class SystemFacade {
private authentication: Authentication;
private dataStorage: DataStorage;
constructor() {
this.authentication = new Authentication();
this.dataStorage = new DataStorage();
}
// Métodos simplificados para el cliente
login(username: string, password: string): void {
if (this.authentication.login(username, password)) {
console.log('Login successful');
} else {
console.log('Login failed');
}
}
logout(): void {
this.authentication.logout();
console.log('Logout successful');
}
saveData(data: any): void {
this.dataStorage.saveData(data);
console.log('Data saved successfully');
}
getData(): any {
const data = this.dataStorage.getData();
console.log('Data retrieved successfully');
return data;
}
}
// Uso
const facade = new SystemFacade();
facade.login('user123', 'password123');
facade.saveData({ id: 1, name: 'John Doe' });
const data = facade.getData();
facade.logout();Last updated