Nouveau : Datasets open source gratuits disponibles !Decouvrir →
langages 20 entrees

Design Patterns en Java

Découvrez les 23 design patterns en Java : un guide pratique pour développer des applications robustes et évoluantes.

Patterns créationnels

Singleton

public class Singleton {
    private static final Singleton INSTANCE = new Singleton();

    private Singleton() {}

    public static Singleton getInstance() {
        return INSTANCE;
    }
}

Utilisé pour la création d'objets uniques, comme les connexions à une base de données.

Factory Method

public interface Shape {
    void draw();
}

public class Circle implements Shape {
    @Override
    public void draw() {
        System.out.println("Drawing a circle");
    }
}

public abstract class ShapeFactory {
    public abstract Shape createShape();

    public static Shape getShape(String shapeType) {
        if (shapeType == null) return null;
        if (shapeType.equalsIgnoreCase("CIRCLE")) return new Circle();
        return null;
    }
}

Utilisé pour créer des objets sans spécifier la classe exacte.

Patterns structurels

Adapter

public interface Target {
    void request();
}

public class Adaptee {
    public void specificRequest() {
        System.out.println("Adaptee method called");
    }
}

public class Adapter implements Target {
    private Adaptee adaptee;

    public Adapter(Adaptee adaptee) {
        this.adaptee = adaptee;
    }

    @Override
    public void request() {
        adaptee.specificRequest();
    }
}

Utilisé pour permettre à deux interfaces incompatibles de travailler ensemble.

Bridge

public abstract class Abstraction {
    protected Implementation implementation;

    public Abstraction(Implementation implementation) {
        this.implementation = implementation;
    }

    public void operation() {
        implementation.operationImp();
    }
}

public interface Implementation {
    void operationImp();
}

public class ConcreteImplementationA implements Implementation {
    @Override
    public void operationImp() {
        System.out.println("Concrete implementation A");
    }
}

Utilisé pour séparer l'interface d'une classe de son implémentation.

Patterns comportementaux

Observer

import java.util.ArrayList;
import java.util.List;

public interface Observer {
    void update(String message);
}

public class Subject {
    private List<Observer> observers = new ArrayList<>();

    public void addObserver(Observer observer) {
        observers.add(observer);
    }

    public void notifyObservers(String message) {
        for (Observer observer : observers) {
            observer.update(message);
        }
    }
}

Utilisé pour mettre en place une relation "un à plusieurs" entre des objets, afin que quand un objet change d'état, tous ses observateurs soient informés.

Strategy

public interface PaymentStrategy {
    void pay(int amount);
}

public class CreditCardPayment implements PaymentStrategy {
    @Override
    public void pay(int amount) {
        System.out.println("Paid with credit card: " + amount);
    }
}

public class ShoppingCart {
    private PaymentStrategy paymentStrategy;

    public void setPaymentStrategy(PaymentStrategy paymentStrategy) {
        this.paymentStrategy = paymentStrategy;
    }

    public void checkout(int amount) {
        paymentStrategy.pay(amount);
    }
}

Utilisé pour encapsuler un ensemble de comportements qui peuvent être interchangeables.

Projet Java a lancer ?

Besoin d'aide sur un projet ? Decrivez-le pour des conseils personnalises.

Recevoir des conseils

Questions frequentes

A quoi sert cette cheatsheet Java ?
Cette cheatsheet Java regroupe la syntaxe, les commandes et les astuces essentielles pour Java. Elle est concue pour servir d'aide-memoire rapide, que vous soyez debutant ou developpeur confirme cherchant une reference rapide.
Comment utiliser cette cheatsheet Java ?
Parcourez les sections pour trouver la syntaxe ou la commande dont vous avez besoin. Vous pouvez la garder ouverte dans un onglet pendant que vous codez, ou la copier dans vos notes pour un acces hors ligne.
Cette cheatsheet est-elle a jour ?
Oui, nos cheatsheets sont regulierement mises a jour pour refleter les dernieres versions et bonnes pratiques de Java. Si vous remarquez une information obsolete, n'hesitez pas a nous contacter.

Pages liees

Chaque semaine, le meilleur de la tech francaise

Tendances, salaires, outils et opportunites — directement dans votre boite mail.

Gratuit. Desabonnement en un clic. Pas de spam.