Use of this pattern makes it possible to interchange concrete implementations without changing the code that uses them, even at runtime.
O uso deste padrón fai posible intercambiar postas en funcionamento concretas sen cambiar o código que as usa, incluso en tempo de execución.