Next: , Previous: Exemple, Up: Classes utilisateur


2.2.3.2 BatchManagerCatalog

La classe BatchManagerCatalog definit une interface d'acces au catalogue de fabriques de BatchManager. See Classe FactBatchManager.

Pourquoi utiliser une fabrique et ne pas instancier directement un objet BatchManager en fonction de sa classe ? C'est l'option qui avait ete choisie dans la premiere version de la bibliotheque de classes Batch. Cette facon de proceder est simple, aussi bien pour le developpeur de la classe que pour l'utilisateur, mais elle se revele a terme penalisante dans la souplesse d'utilisation des classes. Elle permet aussi moins facilement de mettre en place une strategie de singleton pour les objets BatchManager, ce qui peut se reveler utile non pas en termes de performance mais plutot en termes de genericite et toujours de souplesse.

En resume, l'utilisation de fabiques permet d'acceder a la genericite, qui rappelons-le est l'objet de cette biliotheque, a la souplesse et a la performance au prix d'une legere complication pour le developpeur mais pas pour l'utilisateur.

Le catalogue de fabriques est une map, ou tableau associatif, auquel on passe le nom d'une fabrique et qui retourne un pointeur sur une instance de cette fabrique.

Le catalogue est renseigne statiquement par les fabriques declarees elles-memes statiquement dans la biliotheque. Il est donc precharge avec les fabriques correspondant a chacune des API disponibles. Comme le catalogue n'est pas declare constant, il est possible de rajouter ou de supprimer des fabriques dans le catalogue dynamiquement.