Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

184
Visualizações
Patrón de diseño de clase iónica/angular

Dice que estoy creando una aplicación bancaria que solicita bankAccountRawInput desde un servicio remoto. Luego, la aplicación calcula la cantidad después del interés e instancia una nueva cuenta bancaria de clase a partir de los datos sin procesar.

Interfaz de datos sin procesar

 interface bankAccountRawInput { public amount : number; public interestRate : number; }

Clase de proveedor de datos

 @Injectable() export class bankAccount { public amount : number; public interestRate : number; public amountAfterInterest : number constructor(bankAccountRawInput : bankAccountRawInput) { this.amountAfterInterest = this.amount * (1 + this.interestRate) } }

Cuando una vista necesita consumir los datos, hace esto

 getBankAccount() { this.bankAccountRawInput = callRemoteService.get(); this.bankAccount = new BankAccount(bankAccountRawInput); }

y dice que el usuario puede elegir la tasa de interés, por lo que cada vez que cambia la entrada, vuelvo a crear una nueva clase.

 updateBankAccount(newValue) { this.bankAccountRawInput.interestRate = newValue; this.bankAccount = new BankAccount(bankAccountRawInput); }

Me preocupa si es una buena idea usar siempre una nueva palabra clave para crear clases y actualizar. ¿Existe un patrón mejor, por ejemplo, al crear un método de actualización en la cuenta bancaria para actualizar los cambios y recalcular el valor?

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Necesita cambiar su patrón como se muestra a continuación.

Nota: No necesita usar public . De forma predeterminada, es public . Consulte los inline comments para obtener más información. Debe realizar las imports necesarias dentro de los components .

cuentabancariaRawInput.ts

 interface bankAccountRawInput { amount : number; interestRate : number; }

cuentabancaria.ts (proveedor)

 @Injectable() export class BankAccount implements bankAccountRawInput {//implements interface like this. amount : number; interestRate : number; amountAfterInterest : number constructor() {//no need to inject interface here now this.amountAfterInterest = this.amount * (1 + this.interestRate) } bankMethod() : void { console.log("Hi"); } }

página.ts

 export class MyPage{ constructor(public bankAccount : BankAccount ){//inject your service here } getBankAccount() { this.bankAccount.bankMethod();//no need to use `new` keyword here.Angular does it on behalf of us when we injected in the constructor. } }
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda