Bonjour à tous.
Dans quel cas utiliser un Singleton?
Je sais que ça permet de créer une seul instance de class, mais je ne vois pas de cas concret d'utilisation.

Peut-on l'utiliser dans le cas du modèle MVC, mon contrôleur peut-il être instancier comme un Singleton?
Ma classe qui me sert de connection à une DB, peut-elle instancier comme Singleton?

exemple:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
 
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import javax.swing.JOptionPane;
 
/**
 * Class ConnectDAO pour me connecter à ma DB.
 *
 * @author Fred
 */
public class ConnectDAO {
 
    private final String urlDB;
    private final String passwordDB;
    private final String userDB;
    private static Object INSTANCE;
 
    //*******************Constructeur********************************************
    public ConnectDAO() {
        this.userDB = "xxxx";
        this.passwordDB = "xxxx";
        this.urlDB = "localhost:3306/vente_articles?useLegacyDatetimeCode=false&serverTimezone=Europe/Brussels";
 
    }
 
    /**
     * getInstance, crée une instance unique de ConnectDAO et renvoie cet instance.
     * @return 
     */
    public static ConnectDAO getInstance() {
        if (ConnectDAO.INSTANCE == null) {
            INSTANCE = new ConnectDAO();
        }
        return (ConnectDAO) INSTANCE;
    }
 
    public Connection connection() throws SQLException {
        Connection con;
        try {
            Class.forName("com.mysql.cj.jdbc.Driver");
            con = DriverManager.getConnection(("jdbc:mysql://") + this.urlDB, this.userDB, this.passwordDB);
            return con;
        } catch (ClassNotFoundException ex) {
            JOptionPane.showMessageDialog(null, "Erreur driver mysql: " + ex);
            return null;
        }
 
    }
 
}