Bonjour,

Suite a ce post:
http://www.developpez.net/forums/d53...sse-recherche/

Je me suis demandé comment implementer une fonction de recherche multi critere via le pattern Visitor.

J'ai contacté Hed62 qui conseillait les visitor dans son post et il m'a répondu ceci:

En fait, pour faire une recherche multi critère via Visitor, il faut faire passer la liste des éléments successivement dans plusieurs visiteurs (dans le cas de critères en ET).

Exemple sur une liste de produits :
Un visitor est capable de filtrer sur le nom du produit (1).
Un autre sur le prix (2).
Un dernier sur le fournisseur (3).
etc..

Pour une recherche multicritère donnée, admettons les produits contenant "toto" dont le prix est inférieur à 100€, on instancie les deux visitor 1 et 2 avec les bons paramètres.

La liste totale est fournie à l' instance de 1, on récupère les produits qui valide le nom contenant 'toto'. L'instance de 2 récupère cette sous liste et en extrait les produit <100€.

Dans le cas de critères en OU, c'est presque identique : plutôt que de passer la liste en file, on passe à chaque visitor la liste entières, et on fait l'union de toutes les listes qui sortent des visitor


J'espère avoir été clair
A bientôt !
Apres quoi je me suis demandé si envoyer la liste complete donc faire un SELECT * sur une table ne risquait pas de plomber les perfs.

Comme les messages partaient en discussion j'ouvre ce post pour que tout le monde puisse participer.

Il me semble aussi qu'un des interets du visitor est de pouvoir ajouter de nouvelles fonctionnalité sans modifier le code de base. Dans le cas d'une recherche bien definie qui n'evoluera plus ce pattern est il quand meme interessant ?

Merci