Codigo limpio y refactorización

Acoplamiento fuerte.

Las clases o módulos dependen directamente de otras implementaciones concretas, dificultando su testeo y mantenimiento.

Ya lo hemos visto en:

  • en el pripicio de alta cohexión bajo acoplamiento.
  • en el principio de inyección de dependencias

Ejemplo Mal

1public class OrderManager {
2    private UserService userService = new UserService();
3
4    public void createOrder() {
5        userService.notifyUser();
6    }
7}

Ejemplo Corregido

1public class OrderManager {
2    private final UserService userService;
3
4    public OrderManager(UserService userService) {
5        this.userService = userService;
6    }
7
8    public void createOrder() {
9        userService.notifyUser();
10    }
11}