Sistema pedidos en línea
Imaginemos un sistema de pedidos en línea donde un cliente realiza un pedido, y este se envía a un servicio de procesamiento de pagos. Dando el siguiente diagrama.

Esto aunque su diseño es más simple y directo, aumenta el acoplamiento y reduce la flexibilidad al sistema. ¿cómo?,
La clase Cliente depende directamente de la clase ServicioDePagos dado que cambios futuros a la clase ServicioDePagos lleve a que también se tengan que hacer en Cliente.
Si a futuro se realizan cambios en la lógica del procesamiento de pagos, también se tendrán que modificar las instancias en la que la clase Cliente interactúa directamente con ServicioDePagos.
Menos flexibilidad al no tener un punto central para la gestión de las interacciones entre las clases Cliente y ServiciosDePagos, lo que podría complicar la extensión o modificación del comportamiento del sistema.
En lugar de que la clase Cliente interactúe directamente con la clase ServicioDePagos, se puede introducir una clase IntermediarioDePagos que se encargue de gestionar la comunicación. Quedando de la siguiente manera:

Ahora con la clase IntermediarioDePagos la clase Cliente no conoce los detalles de ServicioDePagos, sólo IntermediarioDePagos es la encargada de la lógica del procesamiento de los pagos y por lo tanto conoce a la clase Cliente y a la clase ServicioDePagos. Esto facilita la modificación y evolución de la clase Cliente sin que se vea afectada por los cambios que se presenten en el servicio de pagos.