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

 

Sujet(s) à lire :
    - Who's who@Programmation
 

 Mot :   Pseudo :  
  Aller à la page :
 
 Page :   1  2  3  4  5  ..  19697  19698  19699  ..  27169  27170  27171  27172  27173  27174
Auteur Sujet :

[blabla@olympe] Le topic du modo, dieu de la fibre et du monde

n°2136356
kadreg
profil: Utilisateur
Posté le 13-04-2012 à 17:02:18  profilanswer
 

Reprise du message précédent :
bah il aurait fallu une classe abstraite AnimalPoilu au milieu  :/


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
mood
Publicité
Posté le 13-04-2012 à 17:02:18  profilanswer
 

n°2136357
kadreg
profil: Utilisateur
Posté le 13-04-2012 à 17:02:18  profilanswer
 

bah il aurait fallu une classe abstraite AnimalPoilu au milieu  :/


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
n°2136358
ratibus
Posté le 13-04-2012 à 17:02:20  profilanswer
 

gelatine_velue a écrit :

Bon j'ai une question qui me fait très chier, je fais appel à votre intelligence.
 
J'ai du code que j'ai simplifié ans l'exemple suivant. Imaginez des classes Chien, Chat, Loutre qui héritent de Animal.
 

Code :
  1. uneMethode (AnimalFactory facto)
  2. {
  3. Animal an = facto.creer(TypeAnimal); //Ici on cree un chien ou un chat, etc...
  4. ObjetQuiCaresse.caresser(an);
  5. }


 
Le code va planter au niveau de caresser() (enfin il compile meme pas) car elle est définie pour caresser(Chien)/caresser(Chat)/caresser(Loutre) mais pas caresser(Animal), vu qu'on caresse pas les trois animaux pareil.
 
Quelle solution/Pattern? J'ai fait chier mon chef de projet pour ca mais on a pas trouve  plus elegant qu'un switch/case par type d'animaux. :/


Interface carressable implémentée pour les classes en question et un test avant l'appel à la méthode caresser pour savoir si ton objet implémente l'interface ?

n°2136360
ratibus
Posté le 13-04-2012 à 17:03:54  profilanswer
 

kadreg a écrit :

bah il aurait fallu une classe abstraite AnimalPoilu au milieu  :/


Beurk :o
Si t'as plusieurs propriétés tu vas te taper de l'héritage multiple :/

n°2136361
R3g
fonctionnaire certifié ITIL
Posté le 13-04-2012 à 17:04:16  profilanswer
 

gelatine_velue a écrit :

Bon j'ai une question qui me fait très chier, je fais appel à votre intelligence.
 
J'ai du code que j'ai simplifié ans l'exemple suivant. Imaginez des classes Chien, Chat, Loutre qui héritent de Animal.
 

Code :
  1. uneMethode (AnimalFactory facto)
  2. {
  3. Animal an = facto.creer(TypeAnimal); //Ici on cree un chien ou un chat, etc...
  4. ObjetQuiCaresse.caresser(an);
  5. }


 
Le code va planter au niveau de caresser() (enfin il compile meme pas) car elle est définie pour caresser(Chien)/caresser(Chat)/caresser(Loutre) mais pas caresser(Animal), vu qu'on caresse pas les trois animaux pareil.
 
Quelle solution/Pattern? J'ai fait chier mon chef de projet pour ca mais on a pas trouve  plus elegant qu'un switch/case par type d'animaux. :/


Animal.caresser()


---------------
Au royaume des sourds, les borgnes sont sourds.
n°2136362
kadreg
profil: Utilisateur
Posté le 13-04-2012 à 17:04:47  profilanswer
 

ratibus a écrit :


Beurk :o
Si t'as plusieurs propriétés tu vas te taper de l'héritage multiple :/

 

si tu le deporte au niveau interface, ça ne pose aucun probleme. Regarde UML, y'en a partout ... wait §§§


Message édité par kadreg le 13-04-2012 à 17:05:06

---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
n°2136363
gfive
Posté le 13-04-2012 à 17:05:03  profilanswer
 

ratibus a écrit :


Interface carressable implémentée pour les classes en question et un test avant l'appel à la méthode caresser pour savoir si ton objet implémente l'interface ?


 
Voilà. Eventuellement implémentée par AnimalCaressable, sous-classe abstraite de Animal.
 
Et surtout pas AnimalPoilu, parce que sinon on peut pas caresser les gonzesses.


---------------
Tous les sud africains sont ségrégationistes, à part Ted. (P. Desproges)
n°2136365
ixemul
Nan mais sans blague ! ⚡
Posté le 13-04-2012 à 17:05:39  profilanswer
 

R3g a écrit :


Animal.caresser()


 
Anti-Pattern  [:natas a l'endroit]


---------------
VA APPRENDRE ET REVIENS QUAND TU SAIS, SINON ABSTIENT TOI C'EST UN GRAND CONSEIL QUE JE TE DONNE... TU ES INCOMPÉTENT ET C'EST UNE RÉALITÉ, TU N'AS RIEN A FAIRE ICI FAUT S'Y CONNAITRE ... -Jojo1998 - RIP - http://tinyurl.com/qc47ftk
n°2136366
the real m​oins moins
Posté le 13-04-2012 à 17:05:43  profilanswer
 

sligor a écrit :

dites, il y a bien 1 an quelqu'un avait mis le lien ici d'un article intéressant montrant qu'il fallait avoir le moins de paramètre possible dans le constructeur d'un objet pour faciliter les tests unitaires.
 
Quelqu'un aurait le lien ? je n'arrive plus à le retrouver  [:agkklr]


ça a pas  grand chose a voir avec le nombre de paramètres en fait. Limite ça appellerait justement à en avoir plus, pour éviter des setters et autres init()


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°2136367
skeye
Posté le 13-04-2012 à 17:06:09  profilanswer
 

gfive a écrit :

 

Voilà. Eventuellement implémentée par AnimalCaressable, sous-classe abstraite de Animal.

 

Et surtout pas AnimalPoilu, parce que sinon on peut pas caresser les gonzesses.


AnimalPoilu peut très bien avoir une méthode épiler().[:cosmoschtroumpf]


Message édité par skeye le 13-04-2012 à 17:06:45

---------------
Can't buy what I want because it's free -
mood
Publicité
Posté le 13-04-2012 à 17:06:09  profilanswer
 

n°2136368
ixemul
Nan mais sans blague ! ⚡
Posté le 13-04-2012 à 17:06:46  profilanswer
 

gfive a écrit :


 
Et surtout pas AnimalPoilu, parce que sinon on peut pas caresser les gonzesses.


 
Et les portuguaises alors [:dawao]


---------------
VA APPRENDRE ET REVIENS QUAND TU SAIS, SINON ABSTIENT TOI C'EST UN GRAND CONSEIL QUE JE TE DONNE... TU ES INCOMPÉTENT ET C'EST UNE RÉALITÉ, TU N'AS RIEN A FAIRE ICI FAUT S'Y CONNAITRE ... -Jojo1998 - RIP - http://tinyurl.com/qc47ftk
n°2136369
___alt
Posté le 13-04-2012 à 17:07:15  profilanswer
 

ratibus a écrit :

Interface carressable implémentée pour les classes en question et un test avant l'appel à la méthode caresser pour savoir si ton objet implémente l'interface ?


 
J'aurais dit un peu pareil.


---------------
TRIPS RIGHT BUNCH F SHUTTLE TOM AND JERRY RIGHT YELLOW
n°2136370
gelatine_v​elue
Posté le 13-04-2012 à 17:07:53  profilanswer
 

kadreg a écrit :

bah il aurait fallu une classe abstraite AnimalPoilu au milieu  :/


 
Mais non, imagine qu'on peut pas les caresser pareil les trois.
 

ratibus a écrit :


Interface carressable implémentée pour les classes en question et un test avant l'appel à la méthode caresser pour savoir si ton objet implémente l'interface ?


 
Nan, je peus pas déporter la logique de caressage dans chaque classe héritant Animal...

n°2136371
___alt
Posté le 13-04-2012 à 17:07:57  profilanswer
 

kadreg a écrit :

bah il aurait fallu une classe abstraite AnimalPoilu au milieu  :/

 

Tu peux caresser un serpent. Mais il n'est pas poilu.
Dans ce genre de cas tu veux plutôt avoir une interface non ?

 

Surtout qu'en plus tu ne caresses pas tous les animaux pareil et au pire, si tu caresses plusieurs animaux de la même façon tu peux déléguer la méthode caresser() à un composant commun.


Message édité par ___alt le 13-04-2012 à 17:08:34

---------------
TRIPS RIGHT BUNCH F SHUTTLE TOM AND JERRY RIGHT YELLOW
n°2136372
gelatine_v​elue
Posté le 13-04-2012 à 17:08:51  profilanswer
 

R3g a écrit :


Animal.caresser()


 
J'aurais bien aimé :/

n°2136373
___alt
Posté le 13-04-2012 à 17:09:28  profilanswer
 

Rha, dafuq...


---------------
TRIPS RIGHT BUNCH F SHUTTLE TOM AND JERRY RIGHT YELLOW
n°2136375
___alt
Posté le 13-04-2012 à 17:12:22  profilanswer
 

gelatine_velue a écrit :

Nan, je peus pas déporter la logique de caressage dans chaque classe héritant Animal...


 
Y'a quand même un problème majeur dans votre abstraction là, non ?


---------------
TRIPS RIGHT BUNCH F SHUTTLE TOM AND JERRY RIGHT YELLOW
n°2136376
skeye
Posté le 13-04-2012 à 17:14:14  profilanswer
 

gelatine_velue a écrit :


Mais non, imagine qu'on peut pas les caresser pareil les trois.


 

gelatine_velue a écrit :


Nan, je peus pas déporter la logique de caressage dans chaque classe héritant Animal...


 
...donc chaque classe se caresse différemment, mais tu ne peux pas spécifier dans chacune comment on les caresse?[:pingouino dei]
Je vois pas comment tu échappes à ton vilain switch(), là...[:el g]


---------------
Can't buy what I want because it's free -
n°2136377
gelatine_v​elue
Posté le 13-04-2012 à 17:14:49  profilanswer
 

___alt a écrit :


 
Y'a quand même un problème majeur dans votre abstraction là, non ?


 
Si ça te parle plus c'est un DAO qui fait de la persistance d'objets métiers. Genre ChienDAO.sauvegarde(Chien) (et non pas Chien.sauvegarde()).
Mais de toute façon j'ai pas la main sur tout le code, l'appli étant faite de plein de projets maintenus par différentes personnes. Donc c'est comme ça :/

n°2136378
gfive
Posté le 13-04-2012 à 17:16:05  profilanswer
 

gelatine_velue a écrit :


Quelle solution/Pattern? J'ai fait chier mon chef de projet pour ca mais on a pas trouve  plus elegant qu'un switch/case par type d'animaux. :/

 

Ca c'est quand même le pire, quoi.

 
gelatine_velue a écrit :

 

Mais non, imagine qu'on peut pas les caresser pareil les trois.

  

Nan, je peus pas déporter la logique de caressage dans chaque classe héritant Animal...

 

Et sinon :
Si t'as plusieurs manières de caresser que tu veux implémenter, et qui peuvent être communes à plusieurs animaux => tu te fais une interface Caresseur, et chaque Animal porte son Caresseur, et tu appelles "Caresseur c = animal.getCaresseur(); if (c != null) { c.caresse() };

 

Mais si jamais tu peux mapper l'héritage des caresseurs sur l'héritage de tes animaux (genre, tu as Animal , AnimalCaressableCommeCi, AnimalCaressableCommeCa), alors tu implémentes caresser dans ces classes abstraites là.

 

Le choix se fait sur la quantité de code que tu factorises dans l'un ou l'autre cas : si calquer ta hiérarchie d'animaux sur leur caressabilité te fout la grouille, alors tu fais autrement.
 

 


[edit] Après ton édit, ça marche pas : tu peux pas coller le DAO dans l'objet :D


Message édité par gfive le 13-04-2012 à 17:17:29

---------------
Tous les sud africains sont ségrégationistes, à part Ted. (P. Desproges)
n°2136379
gelatine_v​elue
Posté le 13-04-2012 à 17:19:51  profilanswer
 

skeye a écrit :


 
...donc chaque classe se caresse différemment, mais tu ne peux pas spécifier dans chacune comment on les caresse?[:pingouino dei]
Je vois pas comment tu échappes à ton vilain switch(), là...[:el g]


 
Je sais, mais c'est pas ma faute  [:nik166]

n°2136381
gfive
Posté le 13-04-2012 à 17:24:13  profilanswer
 

Il y a un truc que je pige pas : tu écris :

 
Code :
  1. uneMethode (AnimalFactory facto)
  2. {
  3. Animal an = facto.creer(TypeAnimal); //Ici on cree un chien ou un chat, etc...
  4. ObjetQuiCaresse.caresser(an);
  5. }
 

Mais ObjetQuiCaresse.caresser(xxx) c'est une méthode statique?

 

(je veux dire : tu parles d'un ChienDAO.. Mais si ton animal est un chat, il faut appeller ChatDAO, non?

 

A ce moment là, il te manque un DAOREsolver, ou un truc du genre, qui te filera la bonne implémentation de DAO en fonction de la classe d'animal passée.

 

Du coup, comme c'est l'AnimalFactory qui connaît le type d'animal, ça me paraîtrait normal qu'elle fournisse aussi le DAO.

Message cité 1 fois
Message édité par gfive le 13-04-2012 à 17:27:14

---------------
Tous les sud africains sont ségrégationistes, à part Ted. (P. Desproges)
n°2136382
gelatine_v​elue
Posté le 13-04-2012 à 17:26:18  profilanswer
 

gfive a écrit :

Il y a un truc que je pige pas : tu écris :  
 

Code :
  1. uneMethode (AnimalFactory facto)
  2. {
  3. Animal an = facto.creer(TypeAnimal); //Ici on cree un chien ou un chat, etc...
  4. ObjetQuiCaresse.caresser(an);
  5. }


 
Mais ObjetQuiCaresse.caresser(xxx) c'est une méthode statique?


 
Non, ObjetQuiCaresse c'est un objet instancié lui aussi a partir d'une factory.

Message cité 1 fois
Message édité par gelatine_velue le 13-04-2012 à 17:26:30
n°2136384
gfive
Posté le 13-04-2012 à 17:33:51  profilanswer
 

gelatine_velue a écrit :


 
Non, ObjetQuiCaresse c'est un objet instancié lui aussi a partir d'une factory.


 
Il te faut une AnimalFactoryEtObjectQuiCaresseFactoryFactory.
 


---------------
Tous les sud africains sont ségrégationistes, à part Ted. (P. Desproges)
n°2136385
gelatine_v​elue
Posté le 13-04-2012 à 17:41:13  profilanswer
 

gfive a écrit :


 
Il te faut une AnimalFactoryEtObjectQuiCaresseFactoryFactory.
 


 
 [:potoroz]

n°2136387
Lam's
Profil: bas.
Posté le 13-04-2012 à 17:53:51  profilanswer
 

ixemul a écrit :


 
Anti-Pattern  [:natas a l'endroit]


A mon grand regret, le visiteur ou double-dispatch est un vrai pattern.
Mais moi je reste de l'avis de scott meyer: Une grosse matrice de code, et on en parle plus.
 

n°2136393
LePhasme
Les Belges domineront le monde
Posté le 13-04-2012 à 18:09:47  profilanswer
 

Vapeur tu peux faire mieux non ? http://www.lematin.ch/faits-divers [...] y/30672665

Message cité 2 fois
Message édité par LePhasme le 13-04-2012 à 18:09:59

---------------
Instagram - Mon PVT en Australie.
n°2136397
kadreg
profil: Utilisateur
Posté le 13-04-2012 à 18:12:01  profilanswer
 

 

- son collegue est un boulet
- son chef n'en a pas foutu une non plus, il aurait du le voir

 


moi, je dis bravo monsieur :o


Message édité par kadreg le 13-04-2012 à 18:13:06

---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
n°2136401
el muchach​o
Comfortably Numb
Posté le 13-04-2012 à 18:17:42  profilanswer
 

Jusqu'au dernier moment, où il a merdé. [:marc]


---------------
Les aéroports où il fait bon attendre, voila un topic qu'il est bien
n°2136406
Dion
Acceuil
Posté le 13-04-2012 à 18:55:01  profilanswer
 

flo850 a écrit :

Il va falloir sérieusement démanteler le statut de fonctionnaire pour en arriver là.

 

45 ans, la maison sera remboursée depuis au moins 5 ans, numéro 2 aura 26 ans.  La question d'avoir besoin de bosser se posera donc très sérieusement.
 


s'il survit :/


---------------
It is not called show art
n°2136407
Dion
Acceuil
Posté le 13-04-2012 à 19:11:51  profilanswer
 

R3g a écrit :


RER E je suppose ?


Non mais je suis très chanceux :D
 

flo850 a écrit :


c'est sympa quand même le syndrome des Stockholm


Ah non pour le transport je suis pas d'accord
Pour le loyer par contre [:chrisbk]
 

Lam's a écrit :


Pendant que alt, dion, muchacho et moi, on se demandera si on se boit du mousseux rosé ou du mousseux doré après notre cours de japonais à 22h00. :o


J'ai un peu de mal a te considerer comme Parisien :/
D'un autre cote vla les boulets que je me trimballe si je t'exclus du club mousseux :(
 


1 fonctionnaire sur 2 qui bosse c'est bien au dessus de ce que constate vapeur :o


---------------
It is not called show art
n°2136408
Dion
Acceuil
Posté le 13-04-2012 à 19:17:02  profilanswer
 

Citation :

un jeune Sa****ois de 28 ans féru du Net, FlorentG

 
La presse qui ne fait aucun fact checking  [:cerveau sadnoir]


---------------
It is not called show art
n°2136411
Gilbert Go​sseyn
Dr Liara T'Soni
Posté le 13-04-2012 à 19:33:51  profilanswer
 

___alt a écrit :

Citation :

Pour acheter un appartement correspondant à nos besoins dans les cinq à sept ans à venir (T 3/T4, plus de 60 m2, parking, proche banlieue, au sud-ouest de Paris), il nous faudrait emprunter au minimum 300 000 euros, sans compter les frais de notaire. Ce qui équivaut à près de 1 700 euros par mois sur... trente ans, quand mes parents ont payé leur maison (dans l'ouest parisien et d'une surface de plus de 150 m2) au même âge, avec un seul salaire et sur moins de vingt ans.


 
En fait, c'est surtout cette comparaison qui au delà des chiffres bruts, calme direct.


Clair. Quant au coup de dire de prendre des truelles et de se monter sa baraque ... Déjà faut acheter le terrain, puis obtenir ton permis (si trop gros ton bâtiment, archi obligatoire et c'est pas gratos hein).


---------------
Tant que la couleur de la peau sera plus importante que celle des yeux, nous ne connaitrons pas la paix. ● L'écriture, c'est la mémoire du futur. ● Mods FO4
n°2136413
nraynaud
lol
Posté le 13-04-2012 à 19:36:15  profilanswer
 

C'est assez peu impressionnant google en fait.
Je peux pas trop developper, mais envoyer du magret à la framboise à la cantoche pour se taper 1an de retard dans la roadmap sur un produit qui coûte des dizaines de k€, il va peut-etre falloir passer au foie-gras.


---------------
trainoo.com, c'est fini
n°2136415
Gilbert Go​sseyn
Dr Liara T'Soni
Posté le 13-04-2012 à 19:40:40  profilanswer
 

skeye a écrit :


 
marrant, j'ai pas de soucis avec la CE, moi...[:doc petrus]


Pareil non soucaÿ.


---------------
Tant que la couleur de la peau sera plus importante que celle des yeux, nous ne connaitrons pas la paix. ● L'écriture, c'est la mémoire du futur. ● Mods FO4
n°2136417
flo850
moi je
Posté le 13-04-2012 à 19:50:14  profilanswer
 

Dion a écrit :


s'il survit :/


pour l'instant , ça va
c'est assez solides ces petites betes quand meme
on en a quand même fait deux pour améliorer la probabilité

Dion a écrit :


Ah non pour le transport je suis pas d'accord
Pour le loyer par contre [:chrisbk]


Etre content de ne passer que 40 minutes de transport matin et soir,  si
Même si c'est moins pire que 40 mn en voiture, c'est quand meme au moins une heure de trop.

Dion a écrit :


1 fonctionnaire sur 2 qui bosse c'est bien au dessus de ce que constate vapeur :o


c'est sur
related : Il semblerai que je puisse faire racheter mes cotis de contractuel au tarif fonctionnaire
donc la caisse de retraite va me rendre des thunes  [:twixy]

Message cité 1 fois
Message édité par flo850 le 13-04-2012 à 19:50:26

---------------

n°2136418
el muchach​o
Comfortably Numb
Posté le 13-04-2012 à 19:55:56  profilanswer
 

nraynaud a écrit :

C'est assez peu impressionnant .... en fait.
Je peux pas trop developper, mais envoyer du magret à la framboise à la cantoche pour se taper 1an de retard dans la roadmap sur un produit qui coûte des dizaines de k€, il va peut-etre falloir passer au foie-gras.


T'as réussi à passer les tests téléphoniques ?

Message cité 1 fois
Message édité par el muchacho le 13-04-2012 à 21:18:31

---------------
Les aéroports où il fait bon attendre, voila un topic qu'il est bien
n°2136419
el muchach​o
Comfortably Numb
Posté le 13-04-2012 à 19:57:19  profilanswer
 

Dion a écrit :


J'ai un peu de mal a te considerer comme Parisien :/
D'un autre cote vla les boulets que je me trimballe si je t'exclus du club mousseux :(


Tu risques surtout de te retrouver tout seul, dans ton club. :o


---------------
Les aéroports où il fait bon attendre, voila un topic qu'il est bien
n°2136420
nraynaud
lol
Posté le 13-04-2012 à 19:59:32  profilanswer
 

el muchacho a écrit :


T'as réussi à passer les tests téléphoniques ?


Non,j'y étais pour du business. J'ai pas trop envie de rentrer dans une boite de 23000 personnes 8 ans après l'IPO tant que j'ai pas de pb d'argent.


---------------
trainoo.com, c'est fini
n°2136423
lorill
Posté le 13-04-2012 à 20:07:24  profilanswer
 

Dion a écrit :

Citation :

un jeune Sa****ois de 28 ans féru du Net, FlorentG

 
La presse qui ne fait aucun fact checking  [:cerveau sadnoir]


tu lis les dna toi ?
http://www.dna.fr/edition-de-saver [...] -l-afrique

n°2136426
kadreg
profil: Utilisateur
Posté le 13-04-2012 à 20:13:27  profilanswer
 

 

bah pour nous, parisiens, c'est exotique :o C'est un peu comme lire le national geographique :o


Message édité par kadreg le 13-04-2012 à 20:13:47

---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3  4  5  ..  19697  19698  19699  ..  27169  27170  27171  27172  27173  27174

Aller à :
Ajouter une réponse
 

Sujets relatifs
Plus de sujets relatifs à : [blabla@olympe] Le topic du modo, dieu de la fibre et du monde


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)