Framework de collection java (couche 3)
Par kadreg, dimanche 29 avril 2007 à 13:47 :: Programmation :: #30 :: rss
Revenons un peu à not' java. On a vu que le framework de collections était composé d'un ensemble d'interfaces et d'implémentations. Ces implémentations sont des implémentations générales, toutes les implémentations du framework de collection sont en lecture/écriture et non synchronisées. Il y a bien le cas de Vector, mais elle est là depuis java 1.0, et je rappelle que le framework est apparu avec java 2.
Donc, il y a un réel besoin de décorer les collections pour les syncrhoniser, ou les mettre en read only. Ou une autre décoration, peut importe, le principe est le même. Et cela se fait par l'utilisation d'un pattern décorateur. Le rôle de ce pattern est de rajouter de manière transparente pour l'utilisateur des capacités (ou en supprimer) à un objet.
Pour utiliser ce principe, il y a une classe très pratique : java.util.Collections. Les méthodes statiques de cette classe permettent de réaliser une décoration de collection simplement. Par exemple, si je veux une liste synchronisée, je vais pouvoir utiliser :
List synchronized list = Collections.synchronizedList (new ArrayList ());
Bien évidemment, on peut mixer les décorations. Comme pour faire une collection synchronisée et read only :
List synchronized list = Collections.synchronizedList (Collections.unmodifiableList (new ArrayList ()));
Bien évidemment, en cas de besoin, on peut créer ses propres décorations que l'on pourra utiliser en plus. Par exemple, j'en ai déjà implémentée une qui faisait de la vérification de cardinalité sur la collection.
Commentaires
1. Le dimanche 29 avril 2007 à 17:45, par InFolio
2. Le dimanche 29 avril 2007 à 18:19, par kadreg
3. Le lundi 30 avril 2007 à 11:32, par Destop
4. Le lundi 30 avril 2007 à 11:37, par kadreg
5. Le mercredi 2 mai 2007 à 14:22, par axel
6. Le mercredi 2 mai 2007 à 20:05, par kadreg
7. Le jeudi 3 mai 2007 à 10:37, par fredx
8. Le jeudi 3 mai 2007 à 10:48, par kadreg
9. Le jeudi 3 mai 2007 à 10:51, par gart
Ajouter un commentaire