Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1298 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Etendre une classe pour en faire un singleton

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Etendre une classe pour en faire un singleton

n°1817174
Profil sup​primé
Posté le 26-11-2008 à 16:49:30  answer
 

Salut,
 
j'ai une classe qui fait des trucs et sa petite soeur qui est spécialisée et qui doit être un singleton.
Pour le singleton je ne sais pas assurer que personne ne va pas faire un new à la place du getInstance donc j'ai voulu mettre mon construct en private.  
 
Et la, c'est le drame  :(  
 
Fatal error: Access level to Fred::__construct() must be public (as in class Human)
 
Pourquoi on ne peut pas faire cela ?
 
 
Et je ne peux pas mettre mon constructeur de ma classe mère en private.

mood
Publicité
Posté le 26-11-2008 à 16:49:30  profilanswer
 

n°1817181
Profil sup​primé
Posté le 26-11-2008 à 17:02:26  answer
 

protected ?

n°1817433
Profil sup​primé
Posté le 27-11-2008 à 08:24:10  answer
 

"must be public"  :D  
 
Donc la question est :
pourquoi ne peut on pas étendre une classe en mettant son constructeur en privé alors que dans la classe mère il est en public ?
 
C'est comme ça dans les autres languages ?

n°1817576
skeye
Posté le 27-11-2008 à 12:17:22  profilanswer
 

L'héritage n'est typiquement pas la bonne solution pour ton problème, là...utilise la composition.


---------------
Can't buy what I want because it's free -
n°1817911
Profil sup​primé
Posté le 27-11-2008 à 17:41:02  answer
 


 
mais protected étend l'accès aux classes filles.

n°1817933
skeye
Posté le 27-11-2008 à 17:55:53  profilanswer
 


il s'en branle, la classe mère a un constructeur public.


---------------
Can't buy what I want because it's free -
n°1817942
Profil sup​primé
Posté le 27-11-2008 à 18:03:25  answer
 

ok mais j'ai pas compris ce qu'il veut  :pt1cable:  
 
Forcer l'utilisation de getInstance ?
 

Code :
  1. $obj = Class::getInstance();

n°1817994
skeye
Posté le 27-11-2008 à 18:52:05  profilanswer
 

Il veut faire un singleton qui hériterait des fonctionnalités de sa classe "mère", laquelle a un constructeur public.
La solution est la composition, ie un singleton qui contient une instance de la classe "mère", et tu forwardes toutes les fonctionnalités dont tu as besoin...


---------------
Can't buy what I want because it's free -
n°1817996
Profil sup​primé
Posté le 27-11-2008 à 18:53:29  answer
 

ok... :jap:


Message édité par Profil supprimé le 27-11-2008 à 18:53:41
n°1818103
Profil sup​primé
Posté le 27-11-2008 à 22:59:26  answer
 

ouais y a juste un ptit soucis dans la compo, c'est que je dois déclarer toutes les méthodes de l'autre classe dedans.

mood
Publicité
Posté le 27-11-2008 à 22:59:26  profilanswer
 

n°1818141
skeye
Posté le 28-11-2008 à 07:19:21  profilanswer
 


ah ben ça...[:joce]
Sinon tu profites des raccourcis crados de php et tu fais ça via __call [:chrisbk]


---------------
Can't buy what I want because it's free -
n°1818211
Profil sup​primé
Posté le 28-11-2008 à 10:00:47  answer
 

skeye a écrit :


 
et tu fais ça via __call [:chrisbk]


c'est exactement ce à quoi je pensais  [:z800]

n°1818674
Profil sup​primé
Posté le 28-11-2008 à 17:54:13  answer
 

skeye a écrit :


ah ben ça...[:joce]
Sinon tu profites des raccourcis crados de php et tu fais ça via __call [:chrisbk]


 
 [:bouliyaanisqatsi]

n°1818698
skeye
Posté le 28-11-2008 à 18:24:18  profilanswer
 


bah oui c'est crado...:o


---------------
Can't buy what I want because it's free -

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Etendre une classe pour en faire un singleton

 

Sujets relatifs
inserer une classe dans du code phpProblème avec une classe
Avis sur ma classe FTPConnaitre le nom d'une classe enfant (sans l'instancier)
std::map associer des index et une classe, comparison functionutiliser dans une methode toString() celle d'une autre classe
Question classe session[VB .NET] Comment utiliser une classe écrite en C#
mon programme ne trouve pas la classePlusieurs JVM pour étendre la mémoire disponible?
Plus de sujets relatifs à : Etendre une classe pour en faire un singleton


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR