首页 / JAVA / java – 洋葱六边形架构依赖混淆
java – 洋葱六边形架构依赖混淆
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – 洋葱六边形架构依赖混淆,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2327字,纯文字阅读大概需要4分钟。
内容图文
![java – 洋葱六边形架构依赖混淆](/upload/InfoBanner/zyjiaocheng/726/8f756e6f45894590a581df206ae181cb.jpg)
我在理解六边形(端口适配器)体系结构中依赖的含义时遇到问题.
Here他们有很好的照片.我没有看到的是与n层结构有什么区别(实现).
在洋葱/十六进制架构中,内层应该独立于外层,但它是如何实现的(请注意我的java / spring背景)
在N层中,您可以自动连接N个第1层组件.我看到依赖的方向,但你怎么能还原它: – /
如果我要打电话给outer layer,我会使用界面.
所以界面在内层,在外层实现.现在我独立于外在.就是这个?这是关于API的位置?
无论如何,hex / onion应该独立于依赖性解析,所以它是否意味着我不应该使用@Autowire,@ Inject等?
非常感谢您提前澄清.
解决方法:
哇,那是很多问题.我会尝试逐一介绍它们
In onion/hex architecture the outer layers should be independent from inner ones, but how is it implemented(please note my java/spring background)
有了建筑模式,你会发现许多不同的解释,但是这一点让我觉得很奇怪.洋葱图案的内部部分是您的域逻辑,而外部部件是其他域或技术(数据库,Web服务……)的适配器.您不希望您的域依赖于这些技术细节,因此外部部分可能取决于内部部分,而不是相反.
In N-layered you auto-wire the N+1th layer components. I see the direction of the dependency, but how can you revert it:-/
这称为控制反转.您的域(内部部分)通常需要调用适配器(例如您的数据库访问逻辑),因此在运行时必须存在依赖关系.但是在编译时你不需要这样的依赖,以便能够替换所使用的特定技术.您可以通过使用接口和依赖注入来实现.示例:您的域可能需要访问所有品牌的列表.为此,您可以创建如下界面:
public interface BrandRepository{
public Set[Brand] all()
}
此界面是您域的一部分.您当然有一个该接口的实现,可能基于Jdbc(或内存列表或Web服务).这种实施方式生活在洋葱的外层.由于实现接口依赖于内部部分,因此要求.
If I’m about to call outer layer, I will use interface. So the interface is in inner and implementation in outer layer. Now I’m independent on outer. This is it?
是
It is just about where the API is placed?
很难回答:你的API是什么?您的域模型是适配器的API.适配器是系统其他部分或其他系统的API.
Anyway the hex/onion should be independent from dependency resolution, so does it mean I should not use @Autowire, @Inject etc??
现在,人们可以争论永恒.严格来说,这些注释是依赖于您的DI-Framework.但是,由于这些已经标准化,它们变得更加依赖于您的语言(在没有进入无限递归和收集大量语言设计经验的情况下,您无法避免).对Annotations的依赖性,根据定义,它不能包含任何实现,这不是一个问题,我个人很好,在我的代码中使用它们.
What I don’t see is what is the difference(implementation) from n-layer structure.
洋葱结构是n层结构的相当通用的术语的特定变体.
内容总结
以上是互联网集市为您收集整理的java – 洋葱六边形架构依赖混淆全部内容,希望文章能够帮你解决java – 洋葱六边形架构依赖混淆所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。