|
Page : 1 2 Page Précédente | |
Auteur | Sujet : Différence entre static et singleton |
tomtom41 It's not a bug, it's a feature | |
![]() Publicité | Posté le 10-08-2007 à 10:24:45 ![]() ![]() |
_darkalt3_ Proctopathe | Ta classe non-singleton est déclarée statique en membre d'une autre classe, ce qui fait qu'on pourrait avec des versions non statiques de ta classe, ce qui peut poser souci, si l'interet d'avoir une instance unique de ta classe est par exemple d'acceder de manière unique à un fichier ou un matériel. --------------- Töp of the plöp |
tomtom41 It's not a bug, it's a feature |
|
masklinn í dag viðrar vel til loftárása | La principale et plus grosse différence c'est qu'un singleton c'est du "lazy evaluation": l'instance n'est créée (et la ressource récupérée) qu'au premier accès, alors qu'avec un static c'est au moment ou le classloader génère la classe. Après, une classe statique c'est infiniment plus simple à utiliser puisqu'il n'y a pas besoin de récupérer l'instance en permanence, et c'est thread-safe par définition contrairement à la majorité des singletons. Message cité 1 fois Message édité par masklinn le 10-08-2007 à 14:40:49 --------------- I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing? |
_TT_ |
|
masklinn í dag viðrar vel til loftárása |
--------------- I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing? |
_TT_ |
Message cité 3 fois Message édité par _TT_ le 11-08-2007 à 12:11:32 |
masklinn í dag viðrar vel til loftárása |
Hint: les classes héritées doivent-elles être des singletons ou non? Si non, pourquoi la classe parent est-elle un singleton? Si oui, la singletonisation de ton singleton se fait elle par sous-classe (quel est l'intérêt d'en faire des singletons si tu peux en avoir plusieurs dans ton système? Après tout des classes héritées doivent être "drop-in replaceable", si remplacer une sous-classe de ton singleton par une autre génère une nouvelle instance parallèle à l'ancienne, est-ce encore un singleton?) ou sur l'intégralité des singletons de ton arbre d'héritage (et dans ce cas comment le gérer à part% Message cité 1 fois Message édité par masklinn le 11-08-2007 à 12:41:48 --------------- I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing? |
_TT_ |
Message cité 1 fois Message édité par _TT_ le 11-08-2007 à 14:45:08 |
![]() Publicité | Posté le 11-08-2007 à 13:06:05 ![]() ![]() |
bugsan | Pour moi la classe statique est un anti-pattern, mais bon j'dis ça, j'dis rien...
Message cité 1 fois Message édité par bugsan le 13-01-2008 à 22:23:44 |
BifaceMcLeOD The HighGlandeur | Ce n'est pas le seul anti-pattern. L'initialisation retardée du singleton en environnement multi-thread, que mentionnait Masklinn, en est un autre. |
masklinn í dag viðrar vel til loftárása |
Ben pour moi, le singleton est un anti-pattern... point barre, pas de discussion ou de cas particulier
À noter qu'implémenter un singleton de cette manière est sûr de se vautrer si on est en multithreaded Message cité 1 fois Message édité par masklinn le 16-01-2008 à 16:30:54 --------------- I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing? |
masklinn í dag viðrar vel til loftárása |
edit: et à part ça, http://steve.yegge.googlepages.com [...] red-stupid Message cité 1 fois Message édité par masklinn le 16-01-2008 à 16:38:57 --------------- I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing? |
MagicBuzz | -- Ok, donc d'après ce que j'ai relu, c'est bien ça que vous appelez une classe "statique" (pourtant c'en est pas une mais bon)
|
Ace17 |
|
BifaceMcLeOD The HighGlandeur | Définition d'un singleton : instance unique d'une classe.
|
masklinn í dag viðrar vel til loftárása |
Message édité par masklinn le 18-01-2008 à 14:13:49 --------------- I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing? |
MagicBuzz |
|
masklinn í dag viðrar vel til loftárása |
--------------- I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing? |
MagicBuzz |
|
masklinn í dag viðrar vel til loftárása |
Donc une classe statique peut également être un objet qui vit au fil du temps D'ailleurs, y compris dans java (même si la majorité du truc est planqué et inaccessible), une classe est bien une instance de quelque chose d'autre (une métaclasse, dans les langages qui l'exposent genre Common Lisp, Python ou Ruby) La seule vraie différence fondamentale entre un singleton et une classe statique, c'est le moment de l'instanciation des données stockées: à la création de la classe pour une classe statique (donc soit au chargement du classloader soit à la première référence à la classe), et à la première tentative d'obtention d'une instance pour le singleton.
edit: ah non, j'ai regardé d'un peu plus près, faut dégager le constructeur. Je ne suis même pas sûr qu'il soit possible de déclarer un constructeur comme étant static en java. Et je vois pas quel intérêt ça pourrait bien avoir de toute façon. Donc pas de différence si ce n'est, comme je l'ai dit un peu plus tôt, le moment de l'instanciation Message édité par masklinn le 18-01-2008 à 15:06:32 --------------- I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing? |
MagicBuzz | Ben l'intérêt du truc par exemple, j'ai un fichier ini.
Message édité par MagicBuzz le 18-01-2008 à 17:02:19 |
BifaceMcLeOD The HighGlandeur | Je maintiens ce que je disais : au niveau de la théorie objet, une "classe statique", ça n'a pas vraiment de sens, si "static" signifie "travaille au niveau méta" (c'est comme ça que le mot-clé fonctionne en Java pour les attributs, les méthodes et les classes internes : le membre appartient à la méta-instance, autremet dit la classe, plutôt qu'à l'instance elle-même). Et pour Java, ça n'a pas plus de sens (exception faite des classes internes, dont les instances ont ainsi une référence sur l'instance ou la classe englobante qui les a créées).
|
verdy_p |
Message édité par verdy_p le 01-02-2008 à 13:09:07 |
verdy_p | Qu'est-ce qui te gène? Je réfute l'argument selon lequel un singleton doit absolument s'instancier lors du permier appel : un singleton peut aussi s'instancier avec sa classe, et c'est d'ailleurs ce qu'on doit commencer par faire d'abord avant de penser à une optimisation par instanciation différée ou "lazy" qui ne devrait avoir lieu qu'après profilage et tests mais pas lors du design initial et la création d'un squelette fonctionnel.
Message édité par verdy_p le 01-02-2008 à 13:37:36 |
stiffler Lâche mon profil putain ! :o | UP UP \o/ --------------- I'm failing as fast as I can !! -- Vision-360, vos photos en grand format -- !! -- Les nouilles c'est bon |
verdy_p |
Message édité par verdy_p le 01-02-2008 à 15:41:30 |
verdy_p |
Message cité 1 fois Message édité par verdy_p le 01-02-2008 à 16:01:25 |
verdy_p | Dernier message posté avant moi il y a 10 jours, c'est pas ce que j'appelle mort sur le forum Java... ils sont seulement absents, ou occupés ailleurs pour l'instant. |
BifaceMcLeOD The HighGlandeur | Oui, d'autant que le post de verdy n'est pas vraiment un post juste pour faire remonter le topic : il y a mis de la substance... dont même ceux qui n'étaient jamais venu sur le topic pourront profiter. |
![]() Publicité | Posté le ![]() ![]() |
Page : 1 2 Page Précédente |
Sujets relatifs | |
---|---|
Différence entre membre dans et hors __init__ [RESOLU] | Différence d'interpretation IE/firefox sur blog |
différence entre un .h et un .cpp | quelle différence y'a t'il entre une fonction OnInit et __init__ |
y'a til une différence ? | [RESOLU] ACCESS Différence entre une requète externe/interne à ACCESS |
Problème variable static - application web tomcat | [Visual C++] Différence entre Debug et Release |
CSS, 1px de différence à trouver... | Probleme de différence entre IE et firefox |
Plus de sujets relatifs à : Différence entre static et singleton |