bigears a écrit :
sisisi, en fait j'ai pas été assez clair. Chaque filtre accepte un InputStream et un OutputStream, et est susceptible d'apporter des modifications. merci de ta rapidité
|
Pourquoi chaque filtre accepterait à la fois un IS et un OS? Ca veut pas dire qu'il faut retransformer un OS en IS entre chaque filtre? Pour avoir un truc comme ça:
IS -> [filtre 1] -> OS -- ? -> IS [filtre 2] -> OS -- ? -> IS [filtre 3] -> OS |
?
Après je sais pas comment c'est géré exactement chez toi, mais habituellement sur des workflows genre requête/réponse, il y a une stack d'inputstreams, une opération effectuée puis une stack d'outputstream, et donc pour créer tes stack il suffit de faire de la décoration de l'IS ou de l'OS (en fonction du filtrage et des transformations à apporter) en subclassant FilterOuputStream, pour obtenir un truc comme ça:
InputStream -> [FilterInputStream 1] -> [filterInputStream 2] -> [FilterInputStream 3] -> [FilterInputStream 4] --- || (InputStream) || \/ [Operation] || (OutputStream) || \/ OutputStream <- [FilterOutputStream 1] <- [FilterOutputStream 2] <- [FilterOutputStream 3] <- [FilterOutputStream 4] ---
|
(dans certains modèles le même objet peut être à la fois un FilterInputStream et un FilterOutputStream, ce qui permet potentiellement de bypasser complètement l'Operation et tous les filtres situés "plus haut" sur la stack, mais pour faire ça en java il faut créer des classes custom dans la mesure où OutputStream et InputStream sont des classes abstraites et non des interfaces, si je ne m'abuse)
Message édité par masklinn le 01-11-2008 à 17:30:16
---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody