java
java copied to clipboard
Violación 3-OCP: BankingAccount.java no permite nuevas transacciones sin modificar la clase
Solución propuesta:
Definir una interfaz Transaction y que cada tipo de transacción la implemente.
Código propuesto:
public interface Transaction { int getBalance(); }
public class Debit implements Transaction { /* ... */ }
public class Credit implements Transaction { /* ... */ }
// BankingAccount opera sobre Transaction
UML propuesto:
classDiagram
class Transaction { <<interface>> +getBalance() }
class Debit { +getBalance() }
class Credit { +getBalance() }
Transaction <|.. Debit
Transaction <|.. Credit
BankingAccount o-- Transaction
Gómez S.