I am wondering whether this is the correct way to handle my situation when packaging-by-feature. Use the following project structure as an example:com.foobar.web.Bootstrap.javacom.foobar.web.TcpServer.javacom.foobar.web.RequestHandler.javaEverything part of the web feature is in the web package - good so far. As all of the page classes are homogeneous and use the same parent, is it bad practice to then put them in a new sub-package by layer/type to avoid seemingly empty packages? In effect:com.foobar.web.pages.AbstractPage.javacom.foobar.web.pages.HomePage.javacom.foobar.web.pages.BuyPage.javacom.foobar.web.pages.SupportPage.javaIt feels almost as if I am packaging by feature then sub-packaging by layer. I find this hard to avoid unless I place each individual page in their own lonely package (e.g. .home.HomePage.java, etc) which feels useless as they are on their own with no additional classes in their packages.What is preferable, each in their own package .home.HomePage (package by feature only) or all homogeneous in a single plural package .pages.HomePage (package by feature, then type combined)?
If I package by feature, but have many homogeneous classes, what is preferable?
object oriented;naming;packages