java icon indicating copy to clipboard operation
java copied to clipboard

Violación 1-SRP: Manager.java maneja múltiples responsabilidades

Open gabygomm opened this issue 3 months ago • 0 comments

Solución propuesta: Separar en:

  • MenuManager: solo menú.
  • UserManager: gestión de usuarios.
  • AccountDataAccess: persistencia.

Código propuesto:

// MenuManager.java
public class MenuManager {
    public static int menu() {
        System.out.println("1. Create a new account.");
        System.out.println("2. Login system.");
        System.out.println("3. Exit.");
        System.out.print("Enter your choice: ");
        return Validate.checkInputIntLimit(1, 3);
    }
}

// UserManager.java
public class UserManager {
    private final AccountDataAccess dataAccess;
    public UserManager(AccountDataAccess dataAccess) {
        this.dataAccess = dataAccess;
    }
    public void createNewAccount() { /* ... */ }
    public void loginSystem() { /* ... */ }
}

// AccountDataAccess.java
public interface AccountDataAccess {
    void addAccountData(String username, String password);
    String getPasswordByUsername(String username);
}

UML propuesto:

classDiagram
    class MenuManager { +menu() }
    class UserManager { -AccountDataAccess dataAccess +createNewAccount() +loginSystem() }
    class AccountDataAccess { <<interface>> +addAccountData() +getPasswordByUsername() }
    MenuManager ..> UserManager
    UserManager ..> AccountDataAccess

Gómez S.

gabygomm avatar Oct 24 '25 14:10 gabygomm