La Ley de Deméter es un principio de diseño que se utiliza para reducir la dependencia entre los componentes de un sistema de software y mejorar la cohesión y la modificabilidad del código. Esta ley se basa en la idea de que cada objeto debe tener un conocimiento limitado de otros objetos y debe comunicarse solo con sus amigos directos.
A continuación te proporciono un ejemplo de cómo podría aplicarse la Ley de Deméter en TypeScript:
Copy codeclass Bank {
private accounts: Account[] = [];
constructor() {}
public addAccount(account: Account): void {
this.accounts.push(account);
}
public getTotalBalance(): number {
let totalBalance = 0;
for (const account of this.accounts) {
totalBalance += account.getBalance();
}
return totalBalance;
}
}
class Account {
private balance: number;
constructor(balance: number) {
this.balance = balance;
}
public getBalance(): number {
return this.balance;
}
}
const bank = new Bank();
const account1 = new Account(1000);
const account2 = new Account(2000);
bank.addAccount(account1);
bank.addAccount(account2);
console.log(bank.getTotalBalance());
// Output: 3000
En este ejemplo, tenemos dos clases: Bank
y Account
. La clase Bank
tiene una lista privada de cuentas y un método público llamado getTotalBalance
que se utiliza para obtener el saldo total de todas las cuentas de la banca. La clase Account
tiene un atributo privado para el saldo y un método público llamado getBalance
que se utiliza para obtener el saldo de la cuenta.
Al aplicar la Ley de Deméter, podemos ver cómo la clase Bank
solo tiene conocimiento de sus cuentas y se comunica con ellas a través de mensajes para obtener el saldo de cada cuenta. Esto permite reducir la dependencia entre los componentes del sistema y mejorar la cohesión y la modificabilidad del código.
Deja una respuesta