Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

182
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!