Masquage des classes dans un fichier jar

Est-il vraiment impossible de cacher certaines classes dans un fichier jar?

Je voulais de ne pas autoriser direct de l'instanciation des classes pour le garder plus souple. Seule l'usine (ou façade) doit être visible de ce pot.

Est-il un autre moyen de résoudre ce problème que la création de deux projets?
(Deux projets: le premier contient les classes (mise en œuvre) et de l'autre les références à la première, et contient de l'usine; plus tard seulement, la seconde va être référencé)

Je ne suis pas sûr de ce que tu veux dire par "se cacher". Les fichiers Jar sont juste .les fichiers zip, donc n'importe qui peut les ouvrir et voir vos fichiers de classe à l'intérieur d'eux.
Je veux juste éviter que les classes peuvent être utilisés à l'extérieur (par hasard) au moment de l'instanciation.
Je ne pense que vous devriez faire confiance à l'utilisateur de vos classes et de fournir assez décent de la documentation à ce que l'utiliser et de ne pas le faire. Il n'y a aucune façon vous pouvez éviter toutes les erreurs des développeurs utilisant vos bocaux peuvent venir de toute façon. Une alternative est évidemment juste pour faire votre propre constructeurs tellement complexe que personne ne peut les comprendre et revient naturellement à l'usine classes 😀
Aussi je ne pense pas qu'il n'y a point dans l'ajout de ce type de flexibilité jusqu'à ce qu'il est vraiment servir à quelque chose. Et juste pour la flexibilité, vous pourriez peut-être envisager l'Inversion de Contrôle des frameworks comme Spring (ou quelque chose de plus léger selon vos besoins).
C++ vs Java: 2-0

OriginalL'auteur nrainer | 2011-01-21