Bonjour,
Je dois programmer un logiciel qui doit avoir la possibilité de lui
ajouter d'autre algorithme. En gros, mon logiciel propose plusieurs
algorithme, mais l'utilisateur peut ajouter d'autres algorithme. Comment
faire?
--
Pascal
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
jerome moliere
Pascal wrote:
Bonjour, Je dois programmer un logiciel qui doit avoir la possibilité de lui ajouter d'autre algorithme. En gros, mon logiciel propose plusieurs algorithme, mais l'utilisateur peut ajouter d'autres algorithme. Comment faire?
humm il y a plein de design patterns ayant trait à ceci ou plus simplement un bon vieux fichier de conf et une interface devant être implémentée par tout algorithme et un petit cahregement dynamique de classe et hop :)
Jerome
PS: belle adresse mail :)
-- Auteur cahier du programmeur Java tome 2 - Eyrolles 10/2003 http://www.eyrolles.com/php.informatique/Ouvrages/ouvrage.php3?ouv_ean1382212111941
Pascal wrote:
Bonjour,
Je dois programmer un logiciel qui doit avoir la possibilité de lui
ajouter d'autre algorithme. En gros, mon logiciel propose plusieurs
algorithme, mais l'utilisateur peut ajouter d'autres algorithme. Comment
faire?
humm il y a plein de design patterns ayant trait à ceci ou plus
simplement un bon vieux fichier de conf et une interface devant être
implémentée par tout algorithme et un petit cahregement dynamique de
classe et hop :)
Jerome
PS:
belle adresse mail :)
--
Auteur cahier du programmeur Java tome 2 - Eyrolles 10/2003
http://www.eyrolles.com/php.informatique/Ouvrages/ouvrage.php3?ouv_ean1382212111941
Bonjour, Je dois programmer un logiciel qui doit avoir la possibilité de lui ajouter d'autre algorithme. En gros, mon logiciel propose plusieurs algorithme, mais l'utilisateur peut ajouter d'autres algorithme. Comment faire?
humm il y a plein de design patterns ayant trait à ceci ou plus simplement un bon vieux fichier de conf et une interface devant être implémentée par tout algorithme et un petit cahregement dynamique de classe et hop :)
Jerome
PS: belle adresse mail :)
-- Auteur cahier du programmeur Java tome 2 - Eyrolles 10/2003 http://www.eyrolles.com/php.informatique/Ouvrages/ouvrage.php3?ouv_ean1382212111941
Yves Martin
Pascal writes:
Bonjour, Je dois programmer un logiciel qui doit avoir la possibilité de lui ajouter d'autre algorithme. En gros, mon logiciel propose plusieurs algorithme, mais l'utilisateur peut ajouter d'autres algorithme. Comment faire?
Définir une interface avec les méthodes (set/get et actions) qui permettent de paramétrer et d'appliquer ton algorithme. Ton "moteur" utilise l'algorithme au travers de l'interface.
L'utilisateur instancie une implémentation existante de l'interface ou implémente l'interface, la paramètre et la passe en argument au "moteur" pour réaliser le travail.
A+ -- Yves Martin
Pascal <fuck@verisign.com> writes:
Bonjour,
Je dois programmer un logiciel qui doit avoir la possibilité de lui
ajouter d'autre algorithme. En gros, mon logiciel propose plusieurs
algorithme, mais l'utilisateur peut ajouter d'autres
algorithme. Comment faire?
Définir une interface avec les méthodes (set/get et actions) qui
permettent de paramétrer et d'appliquer ton algorithme. Ton "moteur"
utilise l'algorithme au travers de l'interface.
L'utilisateur instancie une implémentation existante de l'interface
ou implémente l'interface, la paramètre et la passe en argument au
"moteur" pour réaliser le travail.
Bonjour, Je dois programmer un logiciel qui doit avoir la possibilité de lui ajouter d'autre algorithme. En gros, mon logiciel propose plusieurs algorithme, mais l'utilisateur peut ajouter d'autres algorithme. Comment faire?
Définir une interface avec les méthodes (set/get et actions) qui permettent de paramétrer et d'appliquer ton algorithme. Ton "moteur" utilise l'algorithme au travers de l'interface.
L'utilisateur instancie une implémentation existante de l'interface ou implémente l'interface, la paramètre et la passe en argument au "moteur" pour réaliser le travail.
A+ -- Yves Martin
jerome moliere
Pascal wrote:
jerome moliere wrote:
humm il y a plein de design patterns ayant trait à ceci ou plus simplement un bon vieux fichier de conf et une interface devant être implémentée par tout algorithme et un petit cahregement dynamique de classe et hop :)
Tu pourrais me donner des noms stp ou des liens.
google en cherchant pattern depot pa rexemple t'auras la liste et la pre"sentation classique des DP.... tu lis et t'auras face a ttoi la source inepuisable :)
Jerome
-- Auteur cahier du programmeur Java tome 2 - Eyrolles 10/2003 http://www.eyrolles.com/php.informatique/Ouvrages/ouvrage.php3?ouv_ean1382212111941
Pascal wrote:
jerome moliere wrote:
humm il y a plein de design patterns ayant trait à ceci ou plus
simplement un bon vieux fichier de conf et une interface devant être
implémentée par tout algorithme et un petit cahregement dynamique de
classe et hop :)
Tu pourrais me donner des noms stp ou des liens.
google en cherchant pattern depot pa rexemple t'auras la liste et la
pre"sentation classique des DP....
tu lis et t'auras face a ttoi la source inepuisable :)
Jerome
--
Auteur cahier du programmeur Java tome 2 - Eyrolles 10/2003
http://www.eyrolles.com/php.informatique/Ouvrages/ouvrage.php3?ouv_ean1382212111941
humm il y a plein de design patterns ayant trait à ceci ou plus simplement un bon vieux fichier de conf et une interface devant être implémentée par tout algorithme et un petit cahregement dynamique de classe et hop :)
Tu pourrais me donner des noms stp ou des liens.
google en cherchant pattern depot pa rexemple t'auras la liste et la pre"sentation classique des DP.... tu lis et t'auras face a ttoi la source inepuisable :)
Jerome
-- Auteur cahier du programmeur Java tome 2 - Eyrolles 10/2003 http://www.eyrolles.com/php.informatique/Ouvrages/ouvrage.php3?ouv_ean1382212111941
Pascal
jerome moliere wrote:
humm il y a plein de design patterns ayant trait à ceci ou plus simplement un bon vieux fichier de conf et une interface devant être implémentée par tout algorithme et un petit cahregement dynamique de classe et hop :)
Tu pourrais me donner des noms stp ou des liens. -- Pascal
jerome moliere wrote:
humm il y a plein de design patterns ayant trait à ceci ou plus
simplement un bon vieux fichier de conf et une interface devant être
implémentée par tout algorithme et un petit cahregement dynamique de
classe et hop :)
Tu pourrais me donner des noms stp ou des liens.
--
Pascal
humm il y a plein de design patterns ayant trait à ceci ou plus simplement un bon vieux fichier de conf et une interface devant être implémentée par tout algorithme et un petit cahregement dynamique de classe et hop :)
Tu pourrais me donner des noms stp ou des liens. -- Pascal
jerome moliere
Pascal wrote:
Yves Martin wrote:
Définir une interface avec les méthodes (set/get et actions) qui permettent de paramétrer et d'appliquer ton algorithme. Ton "moteur" utilise l'algorithme au travers de l'interface.
L'utilisateur instancie une implémentation existante de l'interface ou implémente l'interface, la paramètre et la passe en argument au "moteur" pour réaliser le travail.
Je vois pas comment mon interface peut utiliser un algorithme avec des acesseurs car il faudrait que le logiciel recompile non? Le logiciel doit etre capable de charger un nouvel algorithme, et de le sauvegarder. Je comptais donc récuperer l'algorithme et copier le fichier dans le repertoire "algorithme", mais apres je vois pas comment faire pour appeler l'algo sans recompiler le programme...
bonne question, si c'est juste cela ton probleme tu peux utiliser un langage de script du type beanshell ou python (via jython) et la plus de probleme
Jerome
-- Auteur cahier du programmeur Java tome 2 - Eyrolles 10/2003 http://www.eyrolles.com/php.informatique/Ouvrages/ouvrage.php3?ouv_ean1382212111941
Pascal wrote:
Yves Martin wrote:
Définir une interface avec les méthodes (set/get et actions) qui
permettent de paramétrer et d'appliquer ton algorithme. Ton "moteur"
utilise l'algorithme au travers de l'interface.
L'utilisateur instancie une implémentation existante de l'interface
ou implémente l'interface, la paramètre et la passe en argument au
"moteur" pour réaliser le travail.
Je vois pas comment mon interface peut utiliser un algorithme avec des
acesseurs car il faudrait que le logiciel recompile non? Le logiciel
doit etre capable de charger un nouvel algorithme, et de le sauvegarder.
Je comptais donc récuperer l'algorithme et copier le fichier dans le
repertoire "algorithme", mais apres je vois pas comment faire pour
appeler l'algo sans recompiler le programme...
bonne question, si c'est juste cela ton probleme tu peux utiliser un
langage de script du type beanshell ou python (via jython)
et la plus de probleme
Jerome
--
Auteur cahier du programmeur Java tome 2 - Eyrolles 10/2003
http://www.eyrolles.com/php.informatique/Ouvrages/ouvrage.php3?ouv_ean1382212111941
Définir une interface avec les méthodes (set/get et actions) qui permettent de paramétrer et d'appliquer ton algorithme. Ton "moteur" utilise l'algorithme au travers de l'interface.
L'utilisateur instancie une implémentation existante de l'interface ou implémente l'interface, la paramètre et la passe en argument au "moteur" pour réaliser le travail.
Je vois pas comment mon interface peut utiliser un algorithme avec des acesseurs car il faudrait que le logiciel recompile non? Le logiciel doit etre capable de charger un nouvel algorithme, et de le sauvegarder. Je comptais donc récuperer l'algorithme et copier le fichier dans le repertoire "algorithme", mais apres je vois pas comment faire pour appeler l'algo sans recompiler le programme...
bonne question, si c'est juste cela ton probleme tu peux utiliser un langage de script du type beanshell ou python (via jython) et la plus de probleme
Jerome
-- Auteur cahier du programmeur Java tome 2 - Eyrolles 10/2003 http://www.eyrolles.com/php.informatique/Ouvrages/ouvrage.php3?ouv_ean1382212111941
Pascal
Yves Martin wrote:
Définir une interface avec les méthodes (set/get et actions) qui permettent de paramétrer et d'appliquer ton algorithme. Ton "moteur" utilise l'algorithme au travers de l'interface.
L'utilisateur instancie une implémentation existante de l'interface ou implémente l'interface, la paramètre et la passe en argument au "moteur" pour réaliser le travail.
Je vois pas comment mon interface peut utiliser un algorithme avec des acesseurs car il faudrait que le logiciel recompile non? Le logiciel doit etre capable de charger un nouvel algorithme, et de le sauvegarder. Je comptais donc récuperer l'algorithme et copier le fichier dans le repertoire "algorithme", mais apres je vois pas comment faire pour appeler l'algo sans recompiler le programme... -- Pascal
Yves Martin wrote:
Définir une interface avec les méthodes (set/get et actions) qui
permettent de paramétrer et d'appliquer ton algorithme. Ton "moteur"
utilise l'algorithme au travers de l'interface.
L'utilisateur instancie une implémentation existante de l'interface
ou implémente l'interface, la paramètre et la passe en argument au
"moteur" pour réaliser le travail.
Je vois pas comment mon interface peut utiliser un algorithme avec des
acesseurs car il faudrait que le logiciel recompile non? Le logiciel
doit etre capable de charger un nouvel algorithme, et de le sauvegarder.
Je comptais donc récuperer l'algorithme et copier le fichier dans le
repertoire "algorithme", mais apres je vois pas comment faire pour
appeler l'algo sans recompiler le programme...
--
Pascal
Définir une interface avec les méthodes (set/get et actions) qui permettent de paramétrer et d'appliquer ton algorithme. Ton "moteur" utilise l'algorithme au travers de l'interface.
L'utilisateur instancie une implémentation existante de l'interface ou implémente l'interface, la paramètre et la passe en argument au "moteur" pour réaliser le travail.
Je vois pas comment mon interface peut utiliser un algorithme avec des acesseurs car il faudrait que le logiciel recompile non? Le logiciel doit etre capable de charger un nouvel algorithme, et de le sauvegarder. Je comptais donc récuperer l'algorithme et copier le fichier dans le repertoire "algorithme", mais apres je vois pas comment faire pour appeler l'algo sans recompiler le programme... -- Pascal
Pascal
Pascal wrote:
Bonjour, Je dois programmer un logiciel qui doit avoir la possibilité de lui ajouter d'autre algorithme. En gros, mon logiciel propose plusieurs algorithme, mais l'utilisateur peut ajouter d'autres algorithme. Comment faire?
En fait je pense pas avoir été très clair. Je dois implénter un svm (support vector machines) qui propose plusieurs sorte d'algorithmes de classification. Via l'interface l'utilisateur doit pouvoir ajouter un algorithme. Mais comme c'est le meme logiciel, je pensais faire un sorte de programme standalone pour l'algorithme. En fait mon logiciel ne ferait alors qu'executer ce programme. Est ce possible? Est qu'un applet peut faire ca? De plus l'algorithme doit fournir des résultats (calculs du taux d'erreurs, vitesse de traitement etc...), et l'interface de mon logiciel doit les afficher. Donc comment faire pour que 2 logiciels interagissent? J'ai pensé à la possibilité que l'algo écrive ses résultat dans un fichier texte, que le logiciel lirait. Mais je trouve cette méthode moyenne. -- Pascal
Pascal wrote:
Bonjour,
Je dois programmer un logiciel qui doit avoir la possibilité de lui
ajouter d'autre algorithme. En gros, mon logiciel propose plusieurs
algorithme, mais l'utilisateur peut ajouter d'autres algorithme. Comment
faire?
En fait je pense pas avoir été très clair. Je dois implénter un svm
(support vector machines) qui propose plusieurs sorte d'algorithmes de
classification. Via l'interface l'utilisateur doit pouvoir ajouter un
algorithme. Mais comme c'est le meme logiciel, je pensais faire un sorte
de programme standalone pour l'algorithme. En fait mon logiciel ne
ferait alors qu'executer ce programme. Est ce possible? Est qu'un applet
peut faire ca?
De plus l'algorithme doit fournir des résultats (calculs du taux
d'erreurs, vitesse de traitement etc...), et l'interface de mon logiciel
doit les afficher. Donc comment faire pour que 2 logiciels
interagissent? J'ai pensé à la possibilité que l'algo écrive ses
résultat dans un fichier texte, que le logiciel lirait. Mais je trouve
cette méthode moyenne.
--
Pascal
Bonjour, Je dois programmer un logiciel qui doit avoir la possibilité de lui ajouter d'autre algorithme. En gros, mon logiciel propose plusieurs algorithme, mais l'utilisateur peut ajouter d'autres algorithme. Comment faire?
En fait je pense pas avoir été très clair. Je dois implénter un svm (support vector machines) qui propose plusieurs sorte d'algorithmes de classification. Via l'interface l'utilisateur doit pouvoir ajouter un algorithme. Mais comme c'est le meme logiciel, je pensais faire un sorte de programme standalone pour l'algorithme. En fait mon logiciel ne ferait alors qu'executer ce programme. Est ce possible? Est qu'un applet peut faire ca? De plus l'algorithme doit fournir des résultats (calculs du taux d'erreurs, vitesse de traitement etc...), et l'interface de mon logiciel doit les afficher. Donc comment faire pour que 2 logiciels interagissent? J'ai pensé à la possibilité que l'algo écrive ses résultat dans un fichier texte, que le logiciel lirait. Mais je trouve cette méthode moyenne. -- Pascal
Pascal
jerome moliere wrote:
bonne question, si c'est juste cela ton probleme tu peux utiliser un langage de script du type beanshell ou python (via jython) et la plus de probleme
Ba en fait, c'est pas possible, car le langage est imposé. Et c'est java. -- Pascal
jerome moliere wrote:
bonne question, si c'est juste cela ton probleme tu peux utiliser un
langage de script du type beanshell ou python (via jython)
et la plus de probleme
Ba en fait, c'est pas possible, car le langage est imposé. Et c'est java.
--
Pascal
bonne question, si c'est juste cela ton probleme tu peux utiliser un langage de script du type beanshell ou python (via jython) et la plus de probleme
Ba en fait, c'est pas possible, car le langage est imposé. Et c'est java. -- Pascal
Yves Martin
Pascal writes:
Je dois programmer un logiciel qui doit avoir la possibilité de lui ajouter d'autre algorithme. En gros, mon logiciel propose plusieurs algorithme, mais l'utilisateur peut ajouter d'autres algorithme. Comment faire?
public interface Algorithme { public void setLimit(); public void setTolerance(); public Vector apply(Vector args); }
public class Moteur { public Vector work(Algorithme implementation); }
public class AlgoImpl1 implements Algorithme { ... }
public class AlgoImpl2 implements Algorithme { ... }
Ensuite le choix de l'algorithme se fait en fournissant l'instance de la classe AlgoImpl1 ou AlgoImpl2. Pour faire le choix, tu peux utiliser un fichier de configuration avec la liste.
Comment ajouter un algo: faire un jar avec l'implementation de l'algo que tu charges par un ClassLoader avec un fichier de propriété qui permet de détecter le nom de la classe (comme l'API SAX et les factory et Xerces, c'est un bon exemple). Par contre le chargement à chaud dans un ClassLoader est assez complexe.
Effectivement la jar doit contenir des classes compilées. A moins d'utiliser BeanShell pour interpréter directement un source Java.
-- Yves Martin
Pascal <fuck@verisign.com> writes:
Je dois programmer un logiciel qui doit avoir la possibilité de lui
ajouter d'autre algorithme. En gros, mon logiciel propose plusieurs
algorithme, mais l'utilisateur peut ajouter d'autres
algorithme. Comment faire?
public interface Algorithme {
public void setLimit();
public void setTolerance();
public Vector apply(Vector args);
}
public class Moteur {
public Vector work(Algorithme implementation);
}
public class AlgoImpl1 implements Algorithme { ... }
public class AlgoImpl2 implements Algorithme { ... }
Ensuite le choix de l'algorithme se fait en fournissant l'instance de
la classe AlgoImpl1 ou AlgoImpl2. Pour faire le choix, tu peux
utiliser un fichier de configuration avec la liste.
Comment ajouter un algo: faire un jar avec l'implementation de l'algo
que tu charges par un ClassLoader avec un fichier de propriété qui
permet de détecter le nom de la classe (comme l'API SAX et les
factory et Xerces, c'est un bon exemple). Par contre le chargement à
chaud dans un ClassLoader est assez complexe.
Effectivement la jar doit contenir des classes compilées. A moins
d'utiliser BeanShell pour interpréter directement un source Java.
Je dois programmer un logiciel qui doit avoir la possibilité de lui ajouter d'autre algorithme. En gros, mon logiciel propose plusieurs algorithme, mais l'utilisateur peut ajouter d'autres algorithme. Comment faire?
public interface Algorithme { public void setLimit(); public void setTolerance(); public Vector apply(Vector args); }
public class Moteur { public Vector work(Algorithme implementation); }
public class AlgoImpl1 implements Algorithme { ... }
public class AlgoImpl2 implements Algorithme { ... }
Ensuite le choix de l'algorithme se fait en fournissant l'instance de la classe AlgoImpl1 ou AlgoImpl2. Pour faire le choix, tu peux utiliser un fichier de configuration avec la liste.
Comment ajouter un algo: faire un jar avec l'implementation de l'algo que tu charges par un ClassLoader avec un fichier de propriété qui permet de détecter le nom de la classe (comme l'API SAX et les factory et Xerces, c'est un bon exemple). Par contre le chargement à chaud dans un ClassLoader est assez complexe.
Effectivement la jar doit contenir des classes compilées. A moins d'utiliser BeanShell pour interpréter directement un source Java.