考虑以下示例。
有一个具有三层的服务器应用程序。向客户端公开的服务层、用于持久性的数据库层和计算某些东西的业务层。
该应用程序提供三种不同类型的数据。用户、付款和工作时间。
我应该如何打包我的应用程序?逐层 打包:
foo.bar.service
UserService.class
PaymentsService.class
WorktimeService.class
foo.bar.persistence
UserPersistenceService.class
PaymentPersistenceService.class
WorktimePersistenceService.class
foo.bar.business
PaymentCalculator.class
或按类型打包:
foo.bar.user
UserService.class
UserPersistenceService.class
foo.bar.payment
PaymentService.class
PaymentsPersistenceService.class
PaymentCalculator.class
foo.bar.worktime
WorktimeService.class
WorktimePersistenceService.class
我想如果应用程序增长并且实现越来越多的逻辑,第一个示例可能会变得混乱。但是,当任务是“扩展持久服务层以做一些花哨的事情”时,似乎更容易找到合适的位置。第二个示例可以更容易地扩展,而无需用数百万个类淹没包。
是否有任何最佳实践可供选择?或者你们对包结构有任何其他想法。