Fassade beschäftigt sich mit Schnittstelle, nicht Umsetzung. Sein Zweck ist es, die interne Komplexität hinter einer einzelnen Schnittstelle zu verbergen, die außen einfach erscheint. In dem Beispiel aus Ihrer Frage verbergen die Fassade vier Klassen (Order, OrderLine, Address, BasketItem) hinter einer einzigen Methode.
Template-Methode befasst sich mit der Implementierung. Sein Zweck besteht darin, den allgemeinen Algorithmus aus mehreren zu extrahieren, die sich nur durch einen "Füllen der Lücken" unterscheiden. Die Template-Methode in der Superklasse implementiert den allgemeinen Algorithmus und jede Unterklasse füllt die Leerzeichen auf ihre eigene spezifische Weise.
Warum also nicht der Autor Template-Muster hier verwenden?
Es wäre sinnvoll, placeOrder
eine Vorlage-Methode zu machen, wenn es mehrere ähnliche Versionen der Operation gäbe. Vielleicht könnten ein paar Methoden wie placePhoneOrder
, placeInternetOrder
, placeManuallyEnteredOrder
in eine einzige Vorlage placeOrder
mit einigen Unterklassen umgestaltet werden, die nur die {phone, internet, manual} -spezifischen Unterschiede implementieren.
Was meinen Sie, indem Sie die Grenze zwischen Fassade und Vorlage ziehen? Fassade ist ein strukturelles Muster und Vorlage ist ein Verhaltensmuster - ich sehe nicht, wie Sie die beiden verbinden können? – RichardOD