|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Futur Membre du Club
![]() Inscription : mai 2003 Messages : 38 ![]() |
Ma question de concerne pas vraiment les Design Patterns ni une méthode mais je ne vois pas ou l'a poster mieux qu'ici.
Voilà, je voudrais savoir s'il est possible d'optimiser ce genre d'algorithmes : Code :
|
||
|
|
00
|
|
|
#2 | ||
|
Expert Confirmé Sénior
![]() ![]() |
Oui, tu peux l'optimiser et faire ça de manière bien plus propre. Tu peux pas exemple utiliser une "Chain of responsability" avec une Factory :
Code Java :
Ensuite, il suffit que tes process implémentent tous une interface process avec une canXXX et tu pourras ensuite facilement l'utiliser : Code Java :
new ProcessFactory().getProcess(var, subvar).launch(); Là le code est en Java, mais tu dois pouvoir adapter ça à tous les langages.
__________________
Tous mes tutos (Java, PHP, SQL-Server, Hardware) - Mon blog anglais JTheque - Site - Forum |
||
|
00
|
|
|
#3 | ||
|
Nouveau Membre du Club
![]() Inscription : juin 2005 Messages : 30 ![]() |
Si tu écris cela en C, la méthode évoquée un peu plus haut risque de te causer pas mal de developpement pour l'adapter !!
De façon plus simple, tu peux remplacer les switch imbriqués par des appels à des fonctions Code :
Optimiser est difficile car tu sera obligé à un moment ou un autre de faire ces tests. Si cela n'est n'est avec un switch, ça sera avec un if/else etc... |
||
|
|
00
|
|
|
#4 |
|
Expert Confirmé Sénior
![]() ![]() |
C'est clair que si tu codes en C, la façon de faire que je t'ai donnée ne vas pas être possible, le C n'étant pas orienté objet
Je ne vois alors que la solution de rhadamanthe. Ah ces langages non-orientés objets
__________________
Tous mes tutos (Java, PHP, SQL-Server, Hardware) - Mon blog anglais JTheque - Site - Forum |
|
00
|
|
|
#5 | ||
|
Membre habitué
![]() Inscription : août 2004 Messages : 113 ![]() |
Bonjour,
c'est le genre de chose qui se fait tres bien avec des tableaux de pointeurs sur fonctions Code :
|
||
|
|
00
|
|
|
#6 |
|
Nouveau Membre du Club
![]() Inscription : juin 2005 Messages : 30 ![]() |
Le problème avec la méthode des pointeurs de fonction, c'est qu'il n'est pas certain du tout que l'index soit si simple à déterminer.
Si pour chaque valeur de son switch il doit déterminer la correspondance en indice, cela risque d'etre vite laborieux. (maintenir un tableau des correspondances, pire, faire un hachage...) Tant qu'a faire les tests, autant appeler directement la fonction qui va bien je pense. |
|
|
00
|
|
|
#7 |
|
Futur Membre du Club
![]() Inscription : mai 2003 Messages : 38 ![]() |
Merci pour toutes vos réponses. j'ai trouvé celà fort intéressant. Je développe en C#. Je peux donc choisir l'option orienté objet en évitant les pointeurs. La solution de wichtounet semble tout à fait appropriée à mes besoins.
C'est incroyable. Je peux réduire tout mes switch/case, if/else en un unique if. C'est évidement beaucoup plus propre. Celà me fait penser à un une remarque que j'ai lu il y a un petit temps. Est il vrai qu'un bon programme orienté objet (voir pur objet) devrait comporter un minimum (voir aucune) d'alternatives ? |
|
|
00
|
Copyright © 2000-2013 - www.developpez.com