I recently looked at a Java application which had a very fine-grained package structure. Many packages only contained one or two classes and many sub packages. Also many packages contained more sub packages than actual classes.
Is this a good or a bad thing?
IMO, it is a bad thing, though not a real show-stopper in terms of maintainability.
The disadvantages are that it makes classes harder to find, and that it makes the package names more verbose. The former applies more when you are not using an IDE.
It could be argued that it helps modularization in conjunction with “package private” scoping. But conversely, you could also argue that over-packagization actually does the opposite; i.e. forcing you to use
publicwhere you wouldn’t have had to if you’d been less fine-grained / pedantic.