La fachada se ocupa de la interfaz, no de la implementación. Su propósito es ocultar la complejidad interna detrás de una única interfaz que parece simple en el exterior. En el ejemplo de su pregunta, la fachada oculta cuatro clases (Order, OrderLine, Address, BasketItem) detrás de un único método.
El método de la plantilla se refiere a la implementación. Su propósito es extraer el algoritmo común de varios que difieren solo en un 'relleno en blanco'. El método de la plantilla en la superclase implementa el algoritmo común y cada subclase 'completa los espacios en blanco' de su propia manera específica.
¿Por qué el autor no usa el Patrón de plantilla aquí?
Tendría sentido hacer placeOrder
un método de plantilla si hubiera varias versiones similares de la operación. Tal vez algunos métodos como placePhoneOrder
, placeInternetOrder
, placeManuallyEnteredOrder
podrían refactorizarse en una sola plantilla placeOrder
con algunas subclases que implementan únicamente las diferencias específicas de {teléfono, internet, manual}.
¿Qué quiere decir con dibujar la línea entre Fachada y Plantilla? La fachada es un patrón estructural y la plantilla es un patrón de comportamiento: no veo cómo se pueden relacionar los dos. – RichardOD