java
java copied to clipboard
Violación 1-SRP: Manager.java maneja múltiples responsabilidades
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.