Skip to Content

Design Patterns en Java

Développement Java > Fondamentaux et Architecture Java


Une formation de 3 jours sur les design patterns et la POO avancée en Java : génériques, collections, programmation fonctionnelle Java 8+, NIO, concurrence, bibliothèques courantes et RxJava.

La formation en 6 mots clés

Design Patterns

Java

Java 8

Generics

Collections

POO Avancée

Informations Pratiques et Programme

Prérequis


Bonne maîtrise de la programmation Java de base et de la programmation orientée objet

Durée


3 jours

Contenu Technique de la Formation


Cette formation se concentre sur les concepts avancés de la programmation orientée objet (OO) en Java ainsi que sur l’utilisation de bibliothèques Java courantes :

  • Concepts avancés de la programmation OO : encapsulation, héritage, polymorphisme
  • Les classes internes et anonymes
  • Gestion avancée des exceptions et des ressources
  • Utilisation de la bibliothèque des collections (Collections Framework)
  • Les Streams et la programmation fonctionnelle en Java 8+
  • Utilisation des expressions lambda
  • Utilisation des interfaces fonctionnelles et des méthodes par défaut
  • Les generics en Java
  • Bibliothèques Java courantes : Apache Commons, Google Guava, Jackson pour la sérialisation JSON
  • Manipulation des fichiers avec NIO (New I/O)
  • Programmation multi-thread avec les bibliothèques Java Concurrency
  • Introduction à la programmation réactive avec RxJava

Objectifs de la Formation


Les objectifs visés par cette formation sont :

  • Utiliser les concepts avancés de la programmation orientée objet en Java
  • Comprendre et utiliser les collections avancées et les Streams Java
  • Utiliser des bibliothèques Java pour simplifier les tâches courantes comme la manipulation de fichiers, la gestion des ressources et le traitement des données
  • Savoir implémenter des solutions concurrentes en utilisant Java Concurrency et des threads
  • Découvrir la programmation réactive avec RxJava

Table des Matières


Programmation orientée objet avancée en Java

  • Révision des concepts de base : héritage, encapsulation, polymorphisme
  • Classes internes, classes locales et classes anonymes
  • Conception de classes immuables et final
  • Les interfaces et les classes abstraites avancées
  • Gestion avancée des exceptions (try-with-resources, suppression d'exceptions)
  • Modèles de conception courants (Design Patterns) : Singleton, Factory, Observer, Strategy


Les Generics en Java

  • Introduction aux Generics : pourquoi et comment les utiliser
  • Création de classes et de méthodes génériques
  • Les wildcards (? extends, ? super)
  • Les avantages et inconvénients des Generics dans le code Java


Bibliothèque des Collections Java (Collections Framework)

  • Les collections de base : List, Set, Map
  • Collections synchronisées et non synchronisées
  • Utilisation des classes utilitaires : Collections et Arrays
  • Itérateurs et manipulation des collections avancées
  • Introduction à la programmation fonctionnelle avec les Streams Java
  • Opérations sur les Streams : filter, map, reduce
  • Parallélisme avec les Streams


Programmation fonctionnelle en Java 8+

  • Introduction aux lambdas : syntaxe et usage
  • Interfaces fonctionnelles et méthodes par défaut
  • Utilisation des lambdas avec les collections
  • Méthodes de référence et leur usage dans le code Java


Gestion des fichiers et flux avec NIO

  • Introduction à l’API NIO (New I/O)
  • Manipulation des fichiers avec Path, Files et FileVisitor
  • Gestion des canaux (Channels) et des buffers (Buffers)
  • Gestion asynchrone des fichiers avec NIO.2


Programmation concurrente en Java

  • Introduction aux Threads et au modèle de mémoire Java
  • Création et gestion de threads (Runnable, Callable)
  • Synchronisation, locks et gestion des données partagées
  • Executors et gestion des pools de threads
  • Outils de synchronisation avancée : CountDownLatch, Semaphore, CyclicBarrier, etc.
  • Introduction à java.util.concurrent et la gestion des tâches asynchrones


Utilisation des bibliothèques Java courantes

  • Apache Commons : manipulation des fichiers, gestion des ressources, collections avancées
  • Google Guava : caches, collections immuables, utilities
  • Jackson : sérialisation et désérialisation JSON


Introduction à la programmation réactive avec RxJava

  • Qu'est-ce que la programmation réactive ?
  • Principes fondamentaux de RxJava : Observables, Subscribers, Operators
  • Création de flux réactifs en Java
  • Gestion de la concurrence réactive


En Pratique


  • Conception de classes avancées en Java, utilisation des Generics
  • Manipulation des collections avancées avec les Streams
  • Programmation multi-thread avec les pools de threads et les outils de synchronisation
  • Manipulation de fichiers avec l'API NIO
  • Utilisation d’Apache Commons et Google Guava pour des tâches courantes
  • Sérialisation et désérialisation d’objets en JSON avec Jackson
  • Mise en place de la programmation réactive avec RxJava

Modalités et Inscription


Cette formation est proposée selon deux formules pour s'adapter au mieux à vos besoins :


Session régulière

Des sessions sont organisées à intervalles réguliers. Demandez les prochaines dates planifiées pour vous inscrire à la prochaine session.


Sur mesure & intra-entreprise

Vous souhaitez former vos équipes directement dans vos locaux ou adapter le programme technique à votre contexte d'entreprise ? Contactez-nous pour obtenir un devis personnalisé.

Obtenir cette formation

Prêt à maîtriser les design patterns Java ? Rejoignez la prochaine session ou contactez-nous pour organiser cette formation dans vos locaux.


Devis sur-mesure

S'inscrire à cette formation

Remplissez le formulaire pour obtenir plus d'informations.