Muster burger

Lassen Sie uns die Definition im Lichte von Burgern noch einmal überdenken: Es geht darum, Komposition (der Benutzer der Strategie hat eine Strategie) und Delegierung (der Benutzer der Strategie delegieren den Job aus). In unserem Beispiel hat ein Burger eine Füllung, und es delegiert die Aufgabe, die Füllung auszukochen. Was ist die Familie der Algorithmen in Bezug auf Burger? Es ist die Familie der verschiedenen Füllungen: Sie können bestellen, was auch immer Burger Sie mögen. Aber für einen Koch folgt die Herstellung eines Burgers dem gleichen allgemeinen Verfahren: Bereiten Sie das Brötchen zu, kochen Sie die Füllung, und legen Sie die Füllung zwischen den oberen und unteren Brötchenstücke. Ein Cheeseburger hat Käse und ein Rinderpastete in der Mitte als Füllung, wo ein gegrillter Hühnerburger gegrillte Hähnchenbrust als Füllung hat. Es ist die unterschiedliche Füllung in der Mitte macht Burger anders als andere. Hier kommt eine wichtige Frage: Was ist Ihre Lieblings-Burger-Strategie? Gelber Hintergrund mit appetitlichem Burger in flachem Design Entzückende süße kleine Mädchen in weißem Hemd und Jeans Jumpsuit mit Hamburger Es gibt eine Menge von Sorten von Burgern: Veggie Burger, Cheeseburger, gegrillte Huhn Burger, Doppel-Käseburger… Wissen Sie, wie man einen Burger bestellt? Wenn ja, habe ich eine gute Nachricht für Sie: Sie wissen bereits, wie man das Strategiemuster verwendet! Diese sind großartig! Eine wirklich effektive Möglichkeit, die verwirrenden Musterbeschreibungen in einfache Visuals zu übersetzen. Sie sind verkapselt und austauschbar miteinander. Tauschen Sie die Füllung von Huhn Burger mit der Füllung von Cheeseburger, erhalten Sie einen Cheeseburger! Ein Burger ist ein echtes Beispiel für die Verwendung von Strategy Pattern.

In unserem Burger-Beispiel haben wir keine bestimmte Klasse, die erklärt, dass die Schnittstelle konkrete Strategien implementieren sollte. Denn das müssen wir nicht, dank Rubys Ententypisierung: Wenn sie wie eine Ente läuft und wie eine Ente spricht, ist sie eine Ente. Wenn es als Burger Füllung gekocht werden kann, ist es ein Burger Füllung. GrilledChickenStuffing und BeefPattyStuffing sind unsere konkreten Strategien – jede von ihnen definiert, wie ihre Füllung gekocht werden sollte. Die Burger-Klasse ist unser Kontext – sie ist mit einer konkreten Strategie konfiguriert und nutzt die konkrete Strategie später, wenn ein Burger gekocht werden muss.