Java Language Lambdas et motif d'exécutions


Exemple

Il existe plusieurs bons exemples d'utilisation de lambdas en tant qu'interface fonctionnelle dans des scénarios simples. Un cas d'utilisation assez courant qui peut être amélioré par lambdas est ce qu'on appelle le modèle Execute-Around. Dans ce modèle, vous disposez d'un ensemble de codes d'installation / de suppression standard nécessaires pour plusieurs scénarios entourant un code spécifique à un cas d'utilisation. Un exemple typique de ceci est le fichier io, la base de données io, les blocs try / catch.

interface DataProcessor {
    void process( Connection connection ) throws SQLException;;
}

public void doProcessing( DataProcessor processor ) throws SQLException{
    try (Connection connection = DBUtil.getDatabaseConnection();) {
        processor.process(connection);
        connection.commit();
    } 
}

Alors, appeler cette méthode avec un lambda pourrait ressembler à ceci:

public static void updateMyDAO(MyVO vo) throws DatabaseException {
    doProcessing((Connection conn) -> MyDAO.update(conn, ObjectMapper.map(vo)));
}

Ceci n'est pas limité aux opérations d'E / S. Il peut s’appliquer à tout scénario dans lequel des tâches similaires de configuration / élimination sont applicables avec des variations mineures. Le principal avantage de ce modèle est la réutilisation du code et l’application de DRY (ne vous répète pas).