Lieferanten anschreiben Muster

Χωρίς κατηγορία   /  

Ein Lieferant wird verwendet, um eine neue Instanz zu erstellen, und ein Consumer wird verwendet, um eine bestimmte Methode auf dieser Instanz aufzurufen. Im Beispiel werden beide Methodenverweise als beide Parameter übergeben. Stattdessen können Sie auch Lambda-Ausdrücke verwenden und stattdessen () -> new Sample() und o -> o.a() schreiben. Weitere Informationen finden Sie in diesem offiziellen Tutorial-Teil. Zuerst geben wir einen Überblick über das Muster und erklären, wie es traditionell in älteren Java-Versionen implementiert wurde. Mein Beispiel: Konfiguration eines Sandwiches. Das Beispiel ist nicht neu. Marco Castigliego hat es bereits 2012 benutzt, um sein Step Builder-Muster zu präsentieren, aber da ich mich in meinen Gesprächen mit meiner Frau oft frage, ob das Fleisch unter oder oben auf den Käse gehört, ist es immer noch relevant. Jetzt ist der wichtige Teil, wie der oben genannte Lieferant aufgerufen werden. Das ist einfach. Rufen Sie einfach die Methode «get» vom Lieferanten auf.

Supplier ist eine eingebaute Funktionsschnittstelle, die in Java8 im Paket java.util.function eingeführt wurde. Der Lieferant kann in allen Kontexten verwendet werden, in denen keine Eingabe vorhanden ist, aber eine Ausgabe erwartet wird. Da Supplier eine funktionale Schnittstelle ist, kann sie daher als Zuweisungsziel für einen Lambda-Ausdruck oder eine Methodenreferenz verwendet werden. In diesem Artikel werden wir untersuchen, wie wir das Strategiedesignmuster in Java 8 implementieren können. Wir hatten hier bereits ausführlich über Factory Design Pattern berichtet. Wenn Sie das vorher nicht gelesen hätten, würde ich Ihnen vorschlagen, diesen Artikel zuerst zu überprüfen. In diesem Artikel, Wir werden einen etwas anderen Ansatz mit Java8 Lambda-Ausdrücke folgen. Der Vorteil der Verwendung von Lambda-Ausdrücken besteht darin, nur weniger Codezeilen zu schreiben und nicht mehrere Klassen zu erstellen. Wenn das obige Beispiel klar ist, dann wäre das Verständnis unter Code einfacher für Sie.

Wie Sie sehen, gebe ich hier eine neue Treiberinstanz zurück, wenn der Lieferant aufgerufen wird! Darüber hinaus ermöglicht uns der deklarative Stil der funktionalen Programmierung, Muster zu implementieren, die vorher nicht möglich waren. Der Lieferant tut das Gegenteil des Verbrauchers, d.h. er nimmt keine Argumente an, sondern gibt einen gewissen Wert zurück, indem er seine get()-Methode aufruft. Beachten Sie, dass die get()-Methode möglicherweise andere Werte zurückgibt, wenn sie mehr als einmal aufgerufen wird. Werfen wir einen Blick auf ein einfaches Codebeispiel, in dem die Supplier-Schnittstelle verwendet wird. Unsere abstrakten Fabriken sollen in der Lage sein, eine naive, iterative Umsetzung sowie das bekannte Gaußsche Summenformel zu liefern. Sie können solche Fabriken als Lieferant von Formeln oder Berechnungen implementieren: Lieferant und das ist alles, was Sie brauchen, um mehrere Fabriken zu implementieren, die mehrere verschiedene Implementierungen eines abstrakten Produkts liefern: Sehr bekannt – und manchmal berüchtigt – ist das (abstrakte) Fabrikmuster in Java-Land. Berühmt, weil Namen dazu neigen,… manchmal wachsen.

Schlechtes Spring-Framework ist oft das Ziel eines Gazillion-Witzes, nur weil er eine Klasse namens SimpleBeanFactoryAwareAspectInstanceFactory hat, auch wenn der Name tatsächlich gut gewählt ist: Sie erhalten eine Factory, die Instanzen von Aspekten produziert, indem Sie eine andere Factory verwenden.

Κοινοποίηση: