Salut tout le monde,
Bon je vais essayer d'être concis...
Mon pb vient avec l'utilisation du design pattern Facade. Celui-ci me permet de "masquer" les autres classes de mon package et je voudrais aller un peu plus loin et "interdire" l'accès à ces autres classes afin de ne pas seulement proposer une interface de communication mais d'imposer l'utilisation de cette Facade.
Je vais illustrer mes propos en vous schématisant l'architecture de mon appli :
- Le package mon.package qui contient Facade
- le package mon.package.businesslogic : Les interfaces qui définissent la couche métier de l'appli
- le package mon.package.factory : Les factories qui me permettent de construire les objets métiers de mon appli (du package businesslogic)
- le package mon.package.businesslogic.impl : l'implémentation des interfaces définissant la couche métier
- le package mon.package.dao : La couche d'accès aux données.
Je voudrais interdire l'accès aux packages businesslogic.impl et dao pour toutes les classes ne faisant pas parties du package mon.package. Cela permettra lors de la réalisation de l'interface graphique de garantir que seules les méthodes "autorisées" seront utilisées et qu'aucun développeur ne sera tenté d'appeler directement les méthodes des classes dao au lieu d'utiliser les fonctionnalités de la classe Facade.
Voilà j'espère que qqu'un aura compris mon pb et que mieux encore il aura une solution à proposer!!
Merci d'avance
Manu
Partager