我阅读了很多关于六边形架构的书,但在我正在查看的所有示例中,所有文件夹和类泛化都不同,这让我感到有些困惑。
我已经完成了一个简单的 Spring Boot 应用程序,其文件夹结构如下。 Adapter文件夹包含repository接口的实现和rest控制器。
在域文件夹中,我有模型,它是一个简单的 POJO、端口,它们是包含产品所有业务逻辑的服务类的接口,以及暴露要在存储库中实现的方法的存储库接口。
在另一个文件夹中,我有服务实现,正如我之前所说的,包含产品的业务逻辑。
这是为简单用例实现六边形架构的正确方法吗?如果不是,为什么?我应该把每一堂课放在哪里,为什么?这个就不清楚了...
非常感谢!
答案 0 :(得分:1)
答案 1 :(得分:1)
您可以随意组织代码。这与六边形架构无关。
话虽如此,如果你想有效地使用六边形架构,你可能应该遵循领域驱动的设计,也就是说,你应该根据领域/业务逻辑来组织你的代码,而不是基于技术相似性.
例如,而不是具有以下结构:
controller
product
cart
customer
service
product
cart
customer
repository
product
cart
customer
DDD 推荐以下结构:
product
controller
service
repository
cart
controller
service
repository
customer
controller
service
repository
完成此操作后,如果有帮助,您可以将它们包装在三个包中,用于六边形架构的不同部分:用户端、业务逻辑和服务器端。这是我过去做过的事情;它帮助我保持不同层次的清晰。
userside
product
controller
cart
controller
customer
controller
businesslogic
product
service
cart
service
customer
service
serverside
product
service
cart
repository
customer
repository
同样,包的结构不是最重要的概念。六边形架构侧重于三个原则:
这是一个非常面向 DDD 的架构;这个想法是业务逻辑尽可能地接近领域,并且不受技术要求的影响。