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

  FORUM HardWare.fr
  Programmation
  Java

  conception objet, ça vous choque ça !?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

conception objet, ça vous choque ça !?

n°172013
El_gringo
Posté le 05-07-2002 à 15:45:36  profilanswer
 

Dans mon prog Java, j'ai 3 singletons static qui j'utilise comme des variables globales. 1 pour mon fichier properties, 1 pour mes Ressources, et un pour mon pool de connections.
ça vous choque ?

mood
Publicité
Posté le 05-07-2002 à 15:45:36  profilanswer
 

n°172017
benou
Posté le 05-07-2002 à 15:52:39  profilanswer
 

bof ...
 
c'est pas top mais bon ...
 
fait gaffe de bien ne montrer que les interface read-only

n°172026
MelloW
Posté le 05-07-2002 à 16:02:08  profilanswer
 

Ce serait peut-être mieux de donner ces 3 classes en tant que paramètre dans les constructeurs de classes qui les utilisent (à moins que tu le fasses déjà d'une manière semblable). Par après si tu veux utiliser une classe spécialisée d'une de ces 3 classes, t'es pas obligé de changer le code client.


Message édité par MelloW le 05-07-2002 à 16:02:24

---------------
Belgian Connection
n°172039
El_gringo
Posté le 05-07-2002 à 16:18:54  profilanswer
 

benou a écrit a écrit :

bof ...
 
c'est pas top mais bon ...
 
fait gaffe de bien ne montrer que les interface read-only




 
Comment ça !? comment je peux faire ? j'ai besoin d'avoir des méthodes public qui sont pas read-only !
Comment faire pour les cacher dans certains cas !?

n°172068
--greg--
Posté le 05-07-2002 à 17:07:21  profilanswer
 

benou a écrit a écrit :

bof ...
 
c'est pas top mais bon ...
 
fait gaffe de bien ne montrer que les interface read-only




dis benou, c quoi que tu trouves pas top? le fait d'avoir les 3 singletons ?
pq?

n°172071
- Renaud -
Posté le 05-07-2002 à 17:08:41  profilanswer
 

--greg-- a écrit a écrit :

 
dis benou, c quoi que tu trouves pas top? le fait d'avoir les 3 singletons ?
pq?
 




 
moi ce que je trouve pas top c'est d'avoir des variables globales, mais bon, je suis une peu extremiste...
 
Renaud

n°172119
benou
Posté le 05-07-2002 à 18:14:32  profilanswer
 

--greg-- a écrit a écrit :

 
dis benou, c quoi que tu trouves pas top? le fait d'avoir les 3 singletons ?
pq?




 
ben c'est pas les singletons qui me poses problème, mais d'après ce que j'imagine, il doit y accéder en fesant par exemple : PropertieFile.singleton.getPath() et ca c'est pas top niveau évolutivité : si demain tu veux étendre la classe PropertieFile, ca va être difficile parce que les références à la classe sont faite en dur : pour accéder à une variable static, il faut préfixer par le nom de la classe => c'est pas top.

n°172125
--greg--
Posté le 05-07-2002 à 18:35:51  profilanswer
 

benou a écrit a écrit :

 
 
ben c'est pas les singletons qui me poses problème, mais d'après ce que j'imagine, il doit y accéder en fesant par exemple : PropertieFile.singleton.getPath() et ca c'est pas top niveau évolutivité : si demain tu veux étendre la classe PropertieFile, ca va être difficile parce que les références à la classe sont faite en dur : pour accéder à une variable static, il faut préfixer par le nom de la classe => c'est pas top.



euh j'ai pas tout compris à ce que tu crois qu'il fait mais bon, spa grave, chuis pressé.
donc si c'est des VRAIS singletons bien propres ça te pose pb quoi?

n°172681
El_gringo
Posté le 08-07-2002 à 08:38:45  profilanswer
 

benou a écrit a écrit :

 
 
ben c'est pas les singletons qui me poses problème, mais d'après ce que j'imagine, il doit y accéder en fesant par exemple : PropertieFile.singleton.getPath() et ca c'est pas top niveau évolutivité : si demain tu veux étendre la classe PropertieFile, ca va être difficile parce que les références à la classe sont faite en dur : pour accéder à une variable static, il faut préfixer par le nom de la classe => c'est pas top.




 
Ouais, c bel et bien comme ça que je fais. c vachement plus pratique que passer en paramètre à chaque fois que g besoin d'une proptiétés par exemple. Et puis le nom de ma classe, je compte bien ne jammais le changer !
 [:thraell]

n°172763
El_gringo
Posté le 08-07-2002 à 11:16:50  profilanswer
 

benou a écrit a écrit :

 
 
ben c'est pas les singletons qui me poses problème, mais d'après ce que j'imagine, il doit y accéder en fesant par exemple : PropertieFile.singleton.getPath() et ca c'est pas top niveau évolutivité : si demain tu veux étendre la classe PropertieFile, ca va être difficile parce que les références à la classe sont faite en dur : pour accéder à une variable static, il faut préfixer par le nom de la classe => c'est pas top.




 
Pourtant, j'crois bien que c toi qui avait posté sur HFR, ta méthode replace, qui s'utilise comme ça : StringUtils.replace...

mood
Publicité
Posté le 08-07-2002 à 11:16:50  profilanswer
 

n°172769
--greg--
Posté le 08-07-2002 à 11:21:54  profilanswer
 

el_gringo a écrit a écrit :

 
 
Pourtant, j'crois bien que c toi qui avait posté sur HFR, ta méthode replace, qui s'utilise comme ça : StringUtils.replace...




faut apprendre à faire la difference entre une methode publique statique et un membre public mon beau :D

n°172775
darklord
You're welcome
Posté le 08-07-2002 à 11:25:04  profilanswer
 

et chtoc  :fuck:  
 
(eh je rigole hein)


---------------
Just because you feel good does not make you right
n°172777
--greg--
Posté le 08-07-2002 à 11:27:55  profilanswer
 

DarkLord a écrit a écrit :

et chtoc  :fuck:  
 
(eh je rigole hein)



oui moi aussi ... il est pas beau !  
:D

n°172790
El_gringo
Posté le 08-07-2002 à 11:55:06  profilanswer
 

--greg-- a écrit a écrit :

 
faut apprendre à faire la difference entre une methode publique statique et un membre public mon beau :D




 
Bah oui, je sais. Ms son truc, ça pose exactement le même problème que celui dont il me parle: 'faut préfixer par le nom de la classe. Donc le nom de la classe est en dur !
D'ou le même pb que ce qu'il m'a dit pour mon cas !
(et je suis pas ton beau à toi, égoïste va ! je suis beau, un point c tout !)
 :fuck:

n°172792
darklord
You're welcome
Posté le 08-07-2002 à 12:00:43  profilanswer
 

une classe d'utilitaire sur les String peut s'appeller difficilement autrement que StringUtils ... enfin moi je dit ca je dis rien hein  :ange:  
 
 [:titprem]  
 
Ceci dit ca ne pose pas le meme probleme du tout !! Tu donne un accès direct à ton singleton. C'est pas comme ca que ca fonctionne. Tu ne cache rien là. En fait ta classe avec un membre statique te sert juste de container, de poubelles quoi.
 
Ca n'a rien à voir avec l'OO. La méthode statique de Benou est 100% correcte car tu ne dois pas avoir une instance d'un objet particulier pour pouvoir l'utiliser.
 
Donc tu as tout faux. Exposer ton singleton comme ca directement c'est pourris. Tu verras jamais personne faire ca ... Au contraire tu utilise une méthode getMachin qui te renvoie le membre privé. Ensuit tu peux appliquer des méthodes sur machin.


Message édité par darklord le 08-07-2002 à 12:01:11

---------------
Just because you feel good does not make you right
n°172796
--greg--
Posté le 08-07-2002 à 12:07:19  profilanswer
 

tain et il ose encore me dire que mes posts son incompréhensibles
 
 :??:

n°172797
El_gringo
Posté le 08-07-2002 à 12:07:22  profilanswer
 

DarkLord a écrit a écrit :

Au contraire tu utilise une méthode getMachin qui te renvoie le membre privé. Ensuit tu peux appliquer des méthodes sur machin.




 
...toujours aussi délicat toi !
j'comprend pas trop. la citation de toi, là, juste au dessus, c ce qu'y faut faire ou ce qu'y faut pas faire !?

n°172799
El_gringo
Posté le 08-07-2002 à 12:07:56  profilanswer
 

--greg-- a écrit a écrit :

tain et il ose encore me dire que mes posts son incompréhensibles
 
 :??:  




 
...qui ça !? moi ?

n°172801
--greg--
Posté le 08-07-2002 à 12:09:29  profilanswer
 

el_gringo a écrit a écrit :

 
 
...qui ça !? moi ?



meuh, non, je parlais de mon darkounet chéri bien sur

n°172804
El_gringo
Posté le 08-07-2002 à 12:10:22  profilanswer
 

--greg-- a écrit a écrit :

meuh, non, je parlais de mon darkounet chéri bien sur




 
...fayo ! :D

n°172806
darklord
You're welcome
Posté le 08-07-2002 à 12:11:53  profilanswer
 

Ce que je dis est très simple.  
 
Donner accès comme ca à un membre statique de manière publique ca ne signifie qu'une chose, que la classe qui la contient est une classe poubelle (dans la plupart des cas).
 
Tu peux très bien faire des trucs élégants avec des membres "statiques" qui en font n'en sont pas. Example
 

Code :
  1. public class PropertiesFile {
  2.     private static Properties p;
  3.     // p est initialisé je ne sais où ...
  4.    
  5.     public static Properties getProperties() {
  6.         return p;
  7.     }
  8. }


 
Ca change quoi? Ca change que tu peux faire tout ce que tu veux dans ta classe PropertiesFile sur p sans avoir de compte à rendre aux classes qui y accèdent. Tu peux changer son nom, tu peux meme changer sa classe si ca te chnate (par une sous classe bien sur sinon y aura un type mismatch).
 
Ca change aussi que tu voudrais que tes clients puissent accéder à ce membre (p) uniquement quand tu l'as décidé. Avec ta méthode tu peux faire PropertiesFile.p n'importe quand (alors que il n'a pas encore été initialisé par exemple)
 
et ca ca pue ...
 
est ce plus clair ?


Message édité par darklord le 08-07-2002 à 12:13:57

---------------
Just because you feel good does not make you right
n°172808
darklord
You're welcome
Posté le 08-07-2002 à 12:12:12  profilanswer
 

--greg-- a écrit a écrit :

tain et il ose encore me dire que mes posts son incompréhensibles
 
 :??:  




 
mais enfin keski est pas clair ?


---------------
Just because you feel good does not make you right
n°172810
darklord
You're welcome
Posté le 08-07-2002 à 12:12:50  profilanswer
 

el_gringo a écrit a écrit :

 
 
...toujours aussi délicat toi !




 
tu préfère que je te dise que t'es un Dieu en java. Surtout ne change rien à ton code machin ... Bin désolé si tu veux ce genre de réponse c'est pas demain la veille :)
 
Edit : je veux pas dire que t'es nul hein ! Je pense juset que ce que tu veux faire là cpasbien :) Donc je te le dit ;)


Message édité par darklord le 08-07-2002 à 12:13:25

---------------
Just because you feel good does not make you right
n°172813
El_gringo
Posté le 08-07-2002 à 12:18:05  profilanswer
 

DarkLord a écrit a écrit :

Ce que je dis est très simple.  
 
Donner accès comme ca à un membre statique de manière publique ca ne signifie qu'une chose, que la classe qui la contient est une classe poubelle (dans la plupart des cas).
 
Tu peux très bien faire des trucs élégants avec des membres "statiques" qui en font n'en sont pas. Example
 

Code :
  1. public class PropertiesFile {
  2.     private static Properties p;
  3.     // p est initialisé je ne sais où ...
  4.    
  5.     public static Properties getProperties() {
  6.         return p;
  7.     }
  8. }


 
Ca change quoi? Ca change que tu peux faire tout ce que tu veux dans ta classe PropertiesFile sur p sans avoir de compte à rendre aux classes qui y accèdent. Tu peux changer son nom, tu peux meme changer sa classe si ca te chnate (par une sous classe bien sur sinon y aura un type mismatch).
 
Ca change aussi que tu voudrais que tes clients puissent accéder à ce membre (p) uniquement quand tu l'as décidé. Avec ta méthode tu peux faire PropertiesFile.p n'importe quand (alors que il n'a pas encore été initialisé par exemple)
 
et ca ca pue ...
 
est ce plus clair ?




 
Bah oui, mais, qui t'as dit que ds ma méthode p est public !? il est privé ! je peux pas faire PropertieFile.p !!

n°172814
El_gringo
Posté le 08-07-2002 à 12:19:47  profilanswer
 

DarkLord a écrit a écrit :

 
 
tu préfère que je te dise que t'es un Dieu en java. Surtout ne change rien à ton code machin ... Bin désolé si tu veux ce genre de réponse c'est pas demain la veille :)
 
Edit : je veux pas dire que t'es nul hein ! Je pense juset que ce que tu veux faire là cpasbien :) Donc je te le dit ;)




 
Ouais, heureusement, j'voudrais pas que tu m'fasses croire que je suis une brute (de toute façon j'y croirais pas !).
Mais, disons que, quand tu fais un reproche, tu le fais de façon... hum, disons brutale !
Je suis sur que je suis pas le seul à penser ça !:D

n°172823
darklord
You're welcome
Posté le 08-07-2002 à 12:32:46  profilanswer
 

el_gringo a écrit a écrit :

 
 
Ouais, heureusement, j'voudrais pas que tu m'fasses croire que je suis une brute (de toute façon j'y croirais pas !).
Mais, disons que, quand tu fais un reproche, tu le fais de façon... hum, disons brutale !
Je suis sur que je suis pas le seul à penser ça !:D




 
bin ouais c comme ca, que veux tu que je te dise moi ...


---------------
Just because you feel good does not make you right
n°172824
--greg--
Posté le 08-07-2002 à 12:32:55  profilanswer
 

el_gringo a écrit a écrit :

 
 
Ouais, heureusement, j'voudrais pas que tu m'fasses croire que je suis une brute (de toute façon j'y croirais pas !).
Mais, disons que, quand tu fais un reproche, tu le fais de façon... hum, disons brutale !
Je suis sur que je suis pas le seul à penser ça !:D




 
+1
 
 :o

n°172825
darklord
You're welcome
Posté le 08-07-2002 à 12:33:21  profilanswer
 

el_gringo a écrit a écrit :

 
 
Bah oui, mais, qui t'as dit que ds ma méthode p est public !? il est privé ! je peux pas faire PropertieFile.p !!




 
bin alors on parle de la meme chose sans le savoir. Bon je laisse tomber parce que ca part dans tout les sens la :)


---------------
Just because you feel good does not make you right
n°172826
mareek
Et de 3 \o/
Posté le 08-07-2002 à 12:33:49  profilanswer
 

el_gringo a écrit a écrit :

 
 
Ouais, heureusement, j'voudrais pas que tu m'fasses croire que je suis une brute (de toute façon j'y croirais pas !).
Mais, disons que, quand tu fais un reproche, tu le fais de façon... hum, disons brutale !
Je suis sur que je suis pas le seul à penser ça !:D




 
te plains pas, il t'as pas encore tappai  ;)


---------------
"I wonder if the internal negative pressure in self pumping toothpaste tubes is adjusted for different market altitudes." John Carmack
n°172833
darklord
You're welcome
Posté le 08-07-2002 à 12:37:49  profilanswer
 

--greg-- a écrit a écrit :

 
 
+1
 
 :o  




 
bon d'accord ...


---------------
Just because you feel good does not make you right
n°172888
El_gringo
Posté le 08-07-2002 à 14:33:23  profilanswer
 

Bon, bah merci à ceux qui m'ont aidé. (oui, toi aussi Dark, même surtout toi ! :D)

n°172897
--greg--
Posté le 08-07-2002 à 14:45:46  profilanswer
 

DarkLord a écrit a écrit :

 
 
bon d'accord ...



bien mangé au fait?
:D

n°172904
darklord
You're welcome
Posté le 08-07-2002 à 14:54:40  profilanswer
 

fantastique ... A moitié couché sur ma console tellement que j'en avais marre de voir ces logs ... MAis bon ca fonctionne avec un test réel ce qui n'est déjà pas rien ;)
 
Je suis assez content. Mais bon on va voir le soir qd il aura 5000 appels à faire :)


---------------
Just because you feel good does not make you right
mood
Publicité
Posté le   profilanswer
 


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

  conception objet, ça vous choque ça !?

 

Sujets relatifs
BD Objet[VBA]question objet
[asp] probleme de recordcount dans l'objet recordsetune fonction vbscript ne peut elle pas retourner un objet recordset??
[tomcat] construire un objet au demarrage d'une webappVisual Basic? Langage procédural ? Evénementiel? à objet? et PHP???
[Objet]Requete avant boucherie d'examen ...[VB] Nom d'un objet public ?
probleme dans la conception d'une interface graphique[PHP] Utilisation d'une classe objet en tant que variable globale
Plus de sujets relatifs à : conception objet, ça vous choque ça !?


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