Skip to content

Código Java Refactorizado, implementación de interfaz PAYMENTDAO #13

@jarenPilco

Description

@jarenPilco

Para solucionar la violación al ISP en PaymentDAO, debes separar responsabilidades y dividir la interfaz en partes más específicas, como extraer lógica de negocio, interfaces más pequeñas.

`public interface PaymentReadOnlyDAO {
Payment findById(int id);
List<Payment> list();
List<Payment> listByWorker(int workerId);
}

public interface PaymentWriteDAO {
boolean create(Payment payment);
boolean update(Payment payment);
boolean delete(Payment payment);
}

public class PaymentDAO implements PaymentReadOnlyDAO, PaymentWriteDAO {

private PaymentDAO() {}

private static class Helper { private static final PaymentDAO INSTANCE = new PaymentDAO(); }
public static PaymentDAO getInstance() { return Helper.INSTANCE; }

@Override
public Payment findById(int id) {
    // Solo acceso a BD
    // Implementación simplificada
    return null;
}

@Override
public List<Payment> list() {
    return new ArrayList<>();
}

@Override
public List<Payment> listByWorker(int workerId) {
    return new ArrayList<>();
}

@Override
public boolean create(Payment payment) { return false; }

@Override
public boolean update(Payment payment) { return false; }

@Override
public boolean delete(Payment payment) { return false; }`

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions