[Java] Implementieren Sie eine Funktion, die eine im Builder-Muster implementierte Klasse verwendet

Hinweis

Alle Implementierungen, die etwas festlegen und sich dann selbst zurückgeben, sind die Builder-Muster.

Was ich machen wollte

Der folgende Code wurde in Massenproduktion zum Einfügen mit "SimpleJdbcInsert" erstellt.

new SimpleJdbcInsert(JDBC-Vorlage)
        .Builder-Verarbeitung
        .execute(new BeanPropertySqlParameterSource(Objekt zum Einfügen));

In diesem Code ist es ineffizient, "new" "SimpleJdbcInsert" und "BeanPropertySqlParameterSource" nacheinander zu verwenden, und aus anderen Gründen bestand im gesamten Projekt ein Bedarf an Effizienz, sodass die Effizienz durch Umschließen des Prozesses mit einer Funktion verbessert wird. Ich habe versucht, es herauszufinden.

Was wurde ein Problem

Da das "SimpleJdbcInsert" im "Builder" -Muster implementiert ist, konnte ich mir eine Implementierung nur vorstellen, indem ich eine initialisierte Instanz übergab, die die Funktion implementiert. Dies ist jedoch fast überhaupt nicht effizient.

Code, der überhaupt nicht effizient ist


Wrap-Funktion(new SimpleJdbcInsert(JDBC-Vorlage).Builder-Verarbeitung,Objekt zum Einfügen);

Lösungen

Ich konnte es effizient implementieren, indem ich es wie ein Fluent Builder-Muster (Kreditmuster) schrieb.

//Wrap-Funktion
public int insertExecute(UnaryOperator<SimpleJdbcInsert> builder, Object entity) {
    return builder.apply(new SimpleJdbcInsert(JDBC-Vorlage))
            .execute(new BeanPropertySqlParameterSource(entity));
}

//Anwendungsbeispiel
insertExecute(it -> it.Builder-Verarbeitung,Objekt zum Einfügen);

Es ist ein Mangel an Studien, dass die Idee, dass "wenn der Generierungsprozess durch den Bauherrn ein Hindernis ist, sollten Sie es akzeptieren", nicht sofort aufkam.

Artikel, die ich als Referenz verwendet habe

In Java \ -Qiita geschriebenes Builder-Muster

Recommended Posts

[Java] Implementieren Sie eine Funktion, die eine im Builder-Muster implementierte Klasse verwendet
So implementieren Sie einen Job, der die Java-API in JobScheduler verwendet
Eine Bat-Datei, die Java in Windows verwendet
Schreiben einer Klasse, die in Java bestellt werden kann Ein kleines Standard-Memo
Implementieren Sie dieselbe Funktion wie das C, C ++ - System ("cls") in Java
3 Implementieren Sie einen einfachen Interpreter in Java
Implementieren Sie die PHP-Implodierungsfunktion in Java
Beispielcode mit JMustache, der Moustache-Vorlagen-Engine in Java
Was ist eine Klasse in der Java-Sprache (3 /?)
Was ist eine Klasse in der Java-Sprache (1 /?)
Was ist eine Klasse in der Java-Sprache (2 /?)
Implementieren Sie so etwas wie einen Stack in Java
Beispielprogramm, das den Hashwert einer Datei in Java zurückgibt
Sind Sie noch erschöpft von der Implementierung der Suchfunktion? Gem'ransack ', der sofort implementiert werden kann
Eine Geschichte über das JDK in der Java 11-Ära
Messen Sie die Größe eines Ordners mit Java
Eine Geschichte über das Erstellen eines Builders, der den Builder erbt
[Java] Wo befindet sich die Implementierungsklasse der Annotation, die in BeanValidation vorhanden ist?
Ein kurzer Überblick über Java, das im Unterricht gelernt wurde
Allzweck-StringConverter-Klasse, die Generika in Java8 verwendet
Holen Sie sich im Frühjahr mehrere Ressourcen, die dem Muster entsprechen
Schreiben Sie eine Klasse in Kotlin und nennen Sie sie in Java
Ein Hinweis zum Initialisieren von Feldern im Java-Lernprogramm
Ich habe versucht, eine Anmeldefunktion mit Java zu erstellen
Implementieren Sie Singleton mit Enum schnell in Java
Ein kurzer Überblick über Java, das in Klasse 3 gelernt wurde
Builder-Muster, das eine Reihe erforderlicher Eigenschaften erzwingt
Entwickeln Sie eine Java-Anwendung, die Amazon SQS verwendet (Teil 1).
Ich habe versucht, die Methode der gegenseitigen Teilung von Eugrid in Java zu implementieren
Fassen Sie die zusätzlichen Elemente der optionalen Klasse in Java 9 zusammen
Die Geschichte, dass .java auch in Unity 2018 erstellt wurde
Eine Bibliothek, die mehrzeilige Zeichenfolgen in mehrzeiligen Java-Zeichenfolgen realisiert
Ein Programm (Java), das die Summe von ungeraden und geraden Zahlen in einem Array ausgibt
Ich habe versucht, ein Programm in Java zu erstellen, das das Problem des Handlungsreisenden mit einem genetischen Algorithmus löst
So erhalten Sie den Namen einer Klasse / Methode, die in Java ausgeführt wird
Implementieren Sie Thread in Java und versuchen Sie, die anonyme Klasse Lambda zu verwenden
Eine kurze Erklärung der fünf Arten von Java Static
Erstellen wir eine Taschenrechner-App mit Java ~ Zeigen Sie das Anwendungsfenster an
Implementieren Sie die Java-Schnittstelle in der JRuby-Klasse und rufen Sie sie von Java aus auf
Identifizieren Sie Threads im Java-Prozess, die CPU verschwenden
Lerndatensatz, der die Tweet-Funktion mit dem STI-Muster erstellt hat
Ein Programm, das die Anzahl der Wörter in einer Liste zählt
Verwendung der in Kotlins Schnittstelle implementierten Funktion, die in Maven als Standardimplementierung von Java 8 eingeführt wurde
Implementieren wir die Bedingung, dass der Umfang und das Innere der Ougi-Form in Java enthalten sind [Teil 2]
Implementieren wir die Bedingung, dass der Umfang und das Innere der Ougi-Form in Java enthalten sind [Teil 1]
Implementieren Sie die Anwendungsfunktion in Rails
Implementierung der zweistufigen Authentifizierung in Java
Implementieren Sie die Standardauthentifizierung in Java
Suchen Sie eine Teilmenge in Java
Implementieren Sie eine Kombination aus Mathematik in Java
Enum Strategiemuster in Java
2 Implementieren Sie eine einfache Syntaxanalyse in Java
[Java] Zeichnen Sie ein einfaches Muster
Implementieren Sie das Senden von E-Mails in Java
[Java] Ich habe versucht, die Kombination zu implementieren.
Implementieren Sie eine funktionsähnliche schnelle Sortierung in Java
Implementieren Sie rm -rf in Java.
Implementieren Sie die XML-Signatur in Java
[Java] Abrufen von Datumsinformationen 10 Tage später in Millisekunden in der Datumsklasse
[Rails] Eine einfache Möglichkeit, eine Selbsteinführungsfunktion in Ihrem Profil zu implementieren