我一直在尝试从博客、文章和视频中了解更多关于 Bob 叔叔的清洁架构的信息。
如果我要在这个架构中使用数据库,那么 UI(作为 Web 或表单等框架)应该了解数据库的哪些信息?或者更一般地说,数据应该如何在同一层中的两个或多个片段/部分之间流动?
例如,UI 将与我的适配器/网关对话以与业务实体交互。对于读/写,我可以看到 UI 可以调用任何可以访问数据库并传入适配器/网关的类/类,以便它可以与业务实体交互。
public class SomeUI
{
public static void Main(string[] args)
{
SomeAdapter adapter = new SomeAdapter();
SomeDataAccess db = new SomeDataAccess();
db.Save(adapter);
}
}
public class SomeDataAccess
{
public void Save(SomeAdapter adapter)
{
//Interact with database
}
}
public class SomeAdapter
{
//properties
}
许多文章与这篇文章几乎没有什么不同(https://subvisual.co/blog/posts/20-clean-architecture)。我还没有找到一篇很好的文章来介绍同一层中的各个部分应该如何相互协作。因此,提及该问题的文章将是一个可以接受的答案。
这似乎没有违反依赖规则,但感觉就像我做的不对,因为我在我的 UI 和数据库之间建立了依赖关系。我相信我可能过度思考了这个概念,并且我相信这可能来自于学习三层架构(UI -> BLL -> DAL)。