[Java] Implémenter une fonction qui utilise une classe implémentée dans le modèle Builder

Remarque

Le modèle Builder comprend toutes les implémentations qui définissent quelque chose puis se renvoient.

Ce que je voulais faire

Le code suivant a été produit en masse pour être inséré à l'aide de SimpleJdbcInsert.

new SimpleJdbcInsert(Modèle Jdbc)
        .Traitement du constructeur
        .execute(new BeanPropertySqlParameterSource(Objet à insérer));

Dans ce code, il est inefficace de nouveau SimpleJdbcInsertetBeanPropertySqlParameterSource` un par un, et il y avait une demande d'efficacité dans l'ensemble du projet pour d'autres raisons, donc l'efficacité est améliorée en enveloppant le processus avec une fonction. J'ai essayé de le comprendre.

Qu'est-ce qui est devenu un problème

Puisque le SimpleJdbcInsert est implémenté dans le modèle Builder, je ne pourrais penser à une implémentation qu'en passant une instance initialisée qui implémente la fonction. Cependant, ce n'est presque pas efficace du tout.

Code qui n'est pas du tout efficace


Fonction Wrap(new SimpleJdbcInsert(Modèle Jdbc).Traitement du constructeur,Objet à insérer);

Solution

J'ai pu l'implémenter efficacement en l'écrivant comme un modèle Fluent Builder (modèle de prêt).

//Fonction Wrap
public int insertExecute(UnaryOperator<SimpleJdbcInsert> builder, Object entity) {
    return builder.apply(new SimpleJdbcInsert(Modèle Jdbc))
            .execute(new BeanPropertySqlParameterSource(entity));
}

//Exemple d'utilisation
insertExecute(it -> it.Traitement du constructeur,Objet à insérer);

C'est un manque d'étude que l'idée que "si le processus de génération par le constructeur est un obstacle, vous devez l'accepter" ne s'est pas posée tout de suite.

Articles que j'ai utilisés comme référence

Modèle de générateur écrit en Java \ -Qiita

Recommended Posts

[Java] Implémenter une fonction qui utilise une classe implémentée dans le modèle Builder
Comment implémenter un travail qui utilise l'API Java dans JobScheduler
Un fichier bat qui utilise Java dans Windows
Ecrire une classe qui peut être ordonnée en Java Un petit mémo standard
Implémenter la même fonction que C, système C ++ ("cls"); en Java
3 Implémentez un interpréteur simple en Java
Implémenter la fonction PHP implode en Java
Exemple de code utilisant JMustache, le moteur de modèles Moustache en Java
Qu'est-ce qu'une classe en langage Java (3 /?)
Qu'est-ce qu'une classe en langage Java (1 /?)
Qu'est-ce qu'une classe en langage Java (2 /?)
Implémenter quelque chose comme une pile en Java
Exemple de programme qui renvoie la valeur de hachage d'un fichier en Java
Êtes-vous toujours épuisé par la mise en œuvre de la fonction de recherche? Gem'ransack 'qui peut être implémenté en un instant
Une histoire sur le JDK à l'ère de Java 11
Mesurer la taille d'un dossier avec Java
Une histoire sur la création d'un Builder qui hérite du Builder
[Java] Où est la classe d'implémentation de l'annotation qui existe dans BeanValidation?
Un examen rapide de Java appris en classe
Classe StringConverter à usage général qui utilise des génériques dans Java8
Obtenez plusieurs ressources qui correspondent au modèle au printemps
Ecrire une classe en Kotlin et l'appeler en Java
Remarque sur l'initialisation des champs dans le didacticiel Java
J'ai essayé de créer une fonction de connexion avec Java
Implémentez rapidement singleton avec enum en Java
Un examen rapide de Java appris en classe part3
Modèle de générateur qui force un ensemble de propriétés requises
Développer une application Java qui utilise Amazon SQS (partie 1)
J'ai essayé d'implémenter la méthode de division mutuelle d'Eugrid en Java
Récapitulez les éléments supplémentaires de la classe Optional dans Java 9
L'histoire que .java est également construite dans Unity 2018
Une bibliothèque qui réalise des chaînes multilignes en chaîne multiligne Java
Un programme (Java) qui génère la somme des nombres pairs et impairs dans un tableau
J'ai essayé de créer un programme en Java qui résout le problème du voyageur de commerce avec un algorithme génétique
Comment obtenir le nom d'une classe / méthode exécutée en Java
Implémentez Thread en Java et essayez d'utiliser la classe anonyme Lambda
Une explication rapide des cinq types de statique Java
Faisons une application de calcul avec Java ~ Afficher la fenêtre de l'application
Implémentez l'interface Java dans la classe JRuby et appelez-la depuis Java
Identifiez les threads du processus Java qui gaspillent du processeur
Enregistrement d'apprentissage qui a créé la fonction tweet avec le modèle STI
Un programme qui compte le nombre de mots dans une liste
Comment utiliser la fonction implémentée dans l'interface de Kotlin introduite dans Maven comme implémentation par défaut de Java 8
Implémentons la condition que la circonférence et l'intérieur de la forme Ougi soient inclus dans Java [Partie 2]
Implémentons la condition que la circonférence et l'intérieur de la forme Ougi soient inclus dans Java [Partie 1]
Implémenter la fonction d'application dans Rails
Implémentation de l'authentification en deux étapes en Java
Implémenter l'authentification de base en Java
Rechercher un sous-ensemble en Java
Implémenter une combinaison de mathématiques en Java
Modèle de stratégie Enum en Java
2 Implémentez une analyse syntaxique simple en Java
[Java] Dessine un motif simple
Implémenter l'envoi d'e-mails en Java
[Java] J'ai essayé d'implémenter la combinaison.
Implémenter un tri rapide de type fonction en Java
Implémentez rm -rf en Java.
Implémenter la signature XML en Java
[Java] Obtenez des informations sur la date 10 jours plus tard en utilisant la milliseconde dans la classe Date
[Rails] Un moyen simple d'implémenter une fonction d'auto-introduction dans votre profil