当前位置: 首页 > 知识库问答 >
问题:

关于端口和适配器/六角结构的澄清

祝俊雄
2023-03-14

我阅读了Alistair关于六边形模式的文章,并浏览了与此相关的其他资源(Alistair的视频,端口和适配器的简短描述)。

我了解六边形架构的总体思路,以及它给现代应用程序开发带来的优势是什么。但是,我仍然对端口和适配器的实际实现有一些困惑。

问题1:

从阿利斯泰尔的文章中,

在一个实现中,端口和适配器以两种方式出现,我将其称为主要和次要,原因显而易见。它们也可以称为驱动适配器和驱动适配器。

Interface IDriving {

//control application
startService();
stopService();

//Events send from application
statusInfoEvent();
}

有可能以更好的方式做到这一点吗?

共有1个答案

胡元忠
2023-03-14

问题1:

驱动程序适配器开始与六边形的对话,仅此而已。但是它与数据流没有任何关系,也就是说,驱动端口可以将数据返回到驱动适配器。

问题2:

 类似资料:
  • 我的文件夹结构如下: > 我的UI的项目 一个为应用程序核心的项目,它包含应用程序服务、域服务和域模型。 基础结构的项目,我有一个持久化文件夹在那里。 传递机制可以切换(从控制台应用程序到web应用程序...)而核心也会照样工作。 同样的基础结构,我可以使用实体框架一次,然后切换到dapper,而不会导致核心的改变。 到目前为止还不错,还是我错过了一些东西,还是我错过了对架构的最基本的理解? 如果

  • null 但有件事我在纠结...应用层如何实现到域层的接口?这难道不需要应用程序层知道域层的相互工作吗?这从一开始就完全破坏了使用接口的意义。如果域层提供了一个接口,而该接口的适配器是由使用该接口的层实现的,这将意味着该接口的用户也在实现该接口本身。就像外层在告诉内层如何工作...这违背了去耦合的本质,甚至违背了一般的接口。 对我来说,这似乎很糟糕,因为现在您已经迫使框架层进行验证,这应该是域逻辑

  • 不过,当我发现有必要的时候,我开始稍微尝试应用概念。我发现仍然有许多我不能甚至不考虑应用到我的应用程序中,其中一些是:适配器、命令(CQR?)、事件… 除此之外,我还有点纠结于与六角形建筑有关的东西。我试图应用外部行为应该依赖于内部的定义,所以基础结构层->应用程序层->领域层 在本例中,我将应用程序层中的服务定义为以下LoginService示例:

  • Navicat 让你以详细分析的进程比对和修改表的结构和其他对象。换句话说,Navicat 能比对两个数据库和/或模式之间的对象并显示其结构的差异处。若要打开结构同步窗口,请从菜单栏选择“工具”->“结构同步”。 你可以将设置保存为一个配置文件以供将来使用。若要打开一个已保存的配置文件,请点击“加载配置文件”按钮并从列表中选择。 【提示】配置文件保存于配置文件位置。 【注意】仅适用于 MySQL、

  • Navicat 让你以详细分析的进程比对和修改表的结构和其他对象。换句话说,Navicat 能比对两个数据库和/或模式之间的对象并显示其结构的差异处。若要打开结构同步窗口,请从菜单栏选择“工具”->“结构同步”。 你可以将设置保存为一个配置文件以供将来使用。若要打开一个已保存的配置文件,请点击“加载配置文件”按钮并从列表中选择。 【提示】配置文件保存于默认的路径,例如:~/Library/Appl

  • Navicat 让你以详细分析的进程比对和修改表的结构和其他对象。换句话说,Navicat 能比对两个数据库和/或模式之间的对象并显示其结构的差异处。若要打开结构同步窗口,请从菜单栏选择“工具”->“结构同步”。 你可以将设置保存为一个配置文件以供将来使用。若要打开一个已保存的配置文件,请点击“加载配置文件”按钮并从列表中选择。 【提示】配置文件保存于默认的路径,例如:/home/your_use