Bonjour,
J'ai toujours le même problème avec cet héritage !
Voilà mon code puis mon problème
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
class A    // pattern singleton
{
  private static A instance = null;
 
  protected A() { ... }
 
  public static A GetInstance()
  {
    if(instance == null)
          instance = new A();
   return instance;
  }
}
 
class B  :  A
{    // pattern singleton
 
  private static B instance = null;
 
  private B() { ... } 
 
  public static B GetInstance()
  {
    if(instance == null)
          instance = new B();
   return instance;
  }
}
Problème :
1. J'appelle B.GetInstance()
2. instance étant null, appel du constructeur B()
3. B() appel alors dans la classe parente A le constructeur A() !
Donc mon singleton A ne sert a rien, puisque A.GetInstance() n'est pas appelé.

J'aimerai alors, qu'au lieu que le constructeur B() appelle le constructeur A(), il appelle plutot A.GetInstance().
Est-ce possible ? Si oui comment ?
Si non, que faut-il remanier ?

Merci !