En los servicios, la Interface Segregation no se aplica gracias a la ausencia de ella. El método seleccionarCond puede tener una Posible No Sostenibilidad de Subclases, ya que el método seleccionar conductor va a necesitar el tipo de vehículo. Una posible solución sería Definir Interfaces Específicas: Crear interfaces pequeñas y específicas para las funcionalidades necesarias.
En los servicios, la clase padre tiene un método que es seleccionarCond que tiene una Dependencia Directa de Detalles Específicos TipoVehiculo es una enumeración, el código depende de los valores específicos MOTO y AUTO. Esto hace que sea difícil cambiar la implementación o agregar nuevos tipos de vehículos sin modificar este método directamente. Una posible solución está en Introducir una interfaz o clase abstracta para Vehiculo.
public abstract class Servicio implements Seleccionable{
//atributos y métodos necesarios
seleccionarConductor
}
public Interface Seleccionable{
//atributos y métodos necesarios
Conductor seleccionarConductor(List<Conductor>);
}
public class servicioDelivery extends Servicio {
//atributos y métodos necesarios
Conductor seleccionarConductor(List<Conductor>){
//lógica
}
}
public abstract class vehiculo{
//clase vehiculo
}
public class moto extends vehiculo{
//clase moto
}
En los servicios, la Interface Segregation no se aplica gracias a la ausencia de ella. El método seleccionarCond puede tener una Posible No Sostenibilidad de Subclases, ya que el método seleccionar conductor va a necesitar el tipo de vehículo. Una posible solución sería Definir Interfaces Específicas: Crear interfaces pequeñas y específicas para las funcionalidades necesarias.
En los servicios, la clase padre tiene un método que es seleccionarCond que tiene una Dependencia Directa de Detalles Específicos TipoVehiculo es una enumeración, el código depende de los valores específicos MOTO y AUTO. Esto hace que sea difícil cambiar la implementación o agregar nuevos tipos de vehículos sin modificar este método directamente. Una posible solución está en Introducir una interfaz o clase abstracta para Vehiculo.
Imagen arreglando DIP
Imagen arreglando Interface Segretation