2017-01-09 57 views
1

我一直在试图更多地了解鲍勃叔叔的干净架构从博客,文章和视频。清洁架构:顺序流在框架

如果我在这个架构中使用一个数据库,那么又该UI(作为一个框架,如网页或表格)了解数据库?或者更一般地说,数据应该如何在同一层中的两个或多个部分/部分之间流动?

例如,UI会跟我的适配器(一个或多个)/网关(S)与业务实体交互。对于读/写,我可以看到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)的。我还没有找到一篇很好的文章,介绍了同一层中的图片应该如何相互协作。所以,提及这些的文章将是一个可以接受的答案。

这似乎并没有违反相关规则,但感觉就像我没有做正确的事情,因为我让我的用户界面和数据库之间的依赖关系。我相信我可能会过度思考这个概念,我相信它可能会从学习3层架构(UI - > BLL - > DAL)中汲取灵感。

回答

1

我一直在对干净架构的其他例子进行更多的研究。

architecture design http://retromocha.com/assets/images/obvious-architecture-e3b86eaa.pngsource)。

从上面的图表中,它看起来像应用程序(业务实体和用例)会谈来回交货(外部对象:UI)。交付用于与外部交流(外部:DAL)。

交货是您实现您的应用程序本身的传送机制。交付是您的应用程序与外部数据源集成并显示给用户的地方。这意味着最简单的用户界面,但它也意味着创建外部对象的具体版本,如数据插孔,并且还调用应用程序本身的操作。 -Retro摩卡

所以,这使我相信这是在顶部的代码示例是有效的,但我还是开听到的话,任何人有更多的提供答案。