Se recomienda corregir las clases CurrentProductBLL y CurrentProductGetway para eliminar las dependencias incorrectas con DBProperties. Se ha asegurado que ambas clases utilicen correctamente DBConnection para obtener la conexión a la base de datos y han eliminado cualquier referencia directa a DBProperties, ya que su única función es cargar propiedades de configuración. Esto asegura una separación adecuada de responsabilidades y evita acoplamientos innecesarios entre las clases.
Estas correcciones ayudan a mantener un diseño más claro y cohesivo, siguiendo buenas prácticas de programación y evitando violaciones del principio de sustitución de Liskov (LSP) o dependencias incorrectas entre clases.
public class CurrentProduct {
private String id;
private String productId;
private String productName;
private String quantity;
private String description;
private String supplierId;
private String brandId;
private String categoryId;
private String unitId;
private String pursesPrice;
private String sellPrice;
private String rmaId;
private String date;
// Constructor, getters y setters
}
// DBConnection.java
/**
* Clase que gestiona la conexión a la base de datos.
*/
public class DBConnection {
private Connection connection;
public Connection getConnection() {
// Implementación para obtener la conexión
return connection;
}
}
// DBProperties.java
/**
* Clase que gestiona la carga de propiedades de la base de datos desde un archivo.
*/
public class DBProperties {
public String loadPropertiesFile() {
// Implementación para cargar propiedades desde un archivo
return "database.properties";
}
}
// SQL.java
/**
* Clase que proporciona métodos SQL para operaciones en la base de datos.
*/
public class SQL {
// Métodos SQL
}
// CurrentProductGetway.java
/**
* Clase que maneja las operaciones de base de datos para la entidad CurrentProduct.
*/
public class CurrentProductGetway {
private DBConnection dbCon;
private Connection con;
private PreparedStatement pst;
private ResultSet rs;
private String dB;
public CurrentProductGetway() {
dbCon = new DBConnection();
con = dbCon.getConnection();
dBProperties = new DBProperties();
dB = dBProperties.loadPropertiesFile();
}
public void save(CurrentProduct currentProduct) {
// Implementación para guardar un producto actual
}
public void update(CurrentProduct currentProduct) {
// Implementación para actualizar un producto actual
}
public boolean isNotSoled(CurrentProduct currentProduct) {
// Implementación para verificar si un producto no se ha vendido
return true;
}
public void delete(CurrentProduct currentProduct) {
// Implementación para eliminar un producto actual
}
}
// CurrentProductBLL.java
/**
* Clase que contiene la lógica de negocio para la entidad CurrentProduct.
*/
public class CurrentProductBLL {
private DBConnection dbCon;
private Connection con;
private PreparedStatement pst;
private ResultSet rs;
private String dB;
private SQL sql;
private CurrentProductGetway currentProductGetway;
public CurrentProductBLL() {
dbCon = new DBConnection();
con = dbCon.getConnection();
sql = new SQL();
currentProductGetway = new CurrentProductGetway();
}
public void save(CurrentProduct currentProduct) {
if (isUniqName(currentProduct)) {
currentProductGetway.save(currentProduct);
}
}
public void update(CurrentProduct currentProduct) {
if (isNotNull(currentProduct)) {
if (isUpdate(currentProduct)) {
if (checkUpdateCondition(currentProduct)) {
currentProductGetway.update(currentProduct);
} else if (isUniqName(currentProduct)) {
currentProductGetway.update(currentProduct);
}
}
}
}
public boolean isUniqName(CurrentProduct currentProduct) {
// Implementación para verificar si el nombre es único
return true;
}
public boolean isUpdate(CurrentProduct currentProduct) {
// Implementación para verificar si hay una actualización
return true;
}
public boolean checkUpdateCondition(CurrentProduct currentProduct) {
// Implementación para verificar la condición de actualización
return true;
}
public boolean isNotNull(CurrentProduct currentProduct) {
// Implementación para verificar si no es nulo
return true;
}
public void delete(CurrentProduct currentProduct) {
if (currentProductGetway.isNotSoled(currentProduct)) {
currentProductGetway.delete(currentProduct);
} else {
// No hacer nada si el producto ya se ha vendido
}
}
}
Se recomienda corregir las clases CurrentProductBLL y CurrentProductGetway para eliminar las dependencias incorrectas con DBProperties. Se ha asegurado que ambas clases utilicen correctamente DBConnection para obtener la conexión a la base de datos y han eliminado cualquier referencia directa a DBProperties, ya que su única función es cargar propiedades de configuración. Esto asegura una separación adecuada de responsabilidades y evita acoplamientos innecesarios entre las clases.
Estas correcciones ayudan a mantener un diseño más claro y cohesivo, siguiendo buenas prácticas de programación y evitando violaciones del principio de sustitución de Liskov (LSP) o dependencias incorrectas entre clases.