2010-03-26 24 views
0

Je suis en train de construire une application mais je me suis retrouvé trop facilement en train de créer de nouveaux paquets sans tenir compte de la structure du projet.Dans quel paquet faut-il placer une classe "Settings"?

Maintenant, j'essaie de refaire toute la structure du projet sur papier. J'utilise une classe Settings avec des propriétés publiques, accessible en tant que paramètres pour plusieurs autres classes autour du projet.

Maintenant, puisque cette classe de paramètres s'applique à l'ensemble du projet, je ne suis pas sûr si elle devrait être empaquetée et si oui, dans quel type de paquet devrait-il exister? Ou devrait-il être dans la racine (le paquet par défaut) avec la classe d'application principale?

J'avais pensé à le mettre dans mon paquet d'utils, alors encore je ne pense pas que c'est vraiment une utlity. Toutes les stratégies sur la façon de décider sur une telle structure de paquets par exemple pour une classe Paramètres?

Répondre

1

L'utilisation du paquetage par défaut est de toute façon déconseillée (en java il est effectivement appliqué comme un avertissement pour autant que je sache), même pour la classe contenant le principal. A part cela, je préfère avoir un paquet config, même si c'est la seule classe là-dedans. Je ne pense pas que cela rentrerait dans le paquet utils.

+0

Avoir un paquet avec le même nom que le seul objet qu'il contient est vraiment encouragé? Je pensais que les paquets étaient destinés à regrouper plusieurs classes, donc avoir seulement 1 classe pour un paquet ne me semble pas juste, peut-être que je me trompe? – Tom

+0

Les paquets sont destinés à regrouper des classes logiquement - s'il n'y a qu'une seule classe avec ce but particulier, je ne vois pas pourquoi ne pas le laisser seul. Une classe 'Settings' n'est certainement pas quelque chose à voir avec les utilitaires pour un projet, elle a à voir avec la configuration. Une autre option avec laquelle vous seriez plus à l'aise serait de le placer en haut de la hiérarchie, c'est-à-dire pour un paquet 'com.some_comp.some_software. ', les 'Settings' seraient au même niveau que les' < various_packages> 'part, dans' com.some_comp.some_software.Settings'. – laura

0

À mon humble avis, vous devriez le mettre dans un paquet séparé, de bas niveau, puisque beaucoup d'autres classes en dépendent, mais il (probablement) ne dépend de rien. Donc, il faut absolument mettre et non dans un paquet avec la classe d'application principale. Il pourrait cependant être dans le paquet utils, ou dans un paquet séparé au même niveau (par exemple config). Par "bas niveau", je veux simplement dire "bas sur la hiérarchie de dépendances de paquet", où un paquet A qui dépend du paquet B est supérieur à B. Donc il ne se rapporte pas directement à la hiérarchie de paquetage réelle. Le but est d'éviter les cycles de dépendance entre vos paquets, de sorte que vous puissiez avoir un tel ordre entre vos paquets.

Vous ne devriez pas utiliser le paquet racine dans une application réelle.