任何人都可以告诉我N层和N层架构有什么区别。我知道3层架构有3层:UI,业务逻辑层(BLL)和数据逻辑层(Dll)
但是现在,我的问题是N-Tier和N-Layer是什么,它们之间有什么区别。
对于C#,这些如何与一个层相互作用?
答案 0 :(得分:2)
不一样。 Layer是软件架构师的概念 - 如何组织代码。 Tier是硬件架构的概念 - 什么机器运行代码的一部分。
答案 1 :(得分:0)
图层定义逻辑分离。如果你有3层,这意味着你有3个独立的系统部分,每个部分负责单独的事情。
Tier定义层之间的物理分离。这并不意味着它必须位于不同的机器中,但这意味着这些部件是分开的,可以单独安装和使用。
答案 2 :(得分:0)
它是关于抽象的。
阅读wikipedia's article on multitier architecture,它会告诉您层与层的关系确实与软件和硬件有关。但是,如果没有严格遵守OSI 7 layer model那将会向您展示(它不是所有软件,但无论如何都称它们为所有层)。真的,这不是重点。抽象是重点。
无论是层级还是层级,每个级别都关注一个明确的责任,并尽可能简单地连接到相邻层。保持连接很少且简单(松散耦合)允许交换级别的替代实现而不会干扰其他级别。这个技巧在硬件中的作用与在软件中的作用相同。
那么,如何在C#中将一个层与另一个层进行交互?这实际上取决于你在做什么。所有C#代码都可以是协调html表示层与SQL数据库层之间交互的逻辑层。或者你可以在游戏中使用model view controller设计有很多层。在这种情况下,所有层都在C#中。或者它可能只是三个类,它们做三件事。但只有正确连接才能。是什么让他们"等级"或"层"是1级必须通过级别2才能达到3级.1不与3级交谈,3级不与1级交谈。
但真正使其发挥作用的是抽象。一个好的数据库层可以通过隐藏逻辑层中不需要的细节来更轻松地更新和查询数据库。删除这些细节使逻辑代码更易于编写和读取。
这与我们在车上戴上引擎盖的原因相同。您可以取下发动机罩,坐在发动机缸体上,将杆塞在机架中。小齿轮总成,抓住油门线,并开车。由于发动机罩不再像现在这样,您可以做出惊人的事情,例如以每小时60英里的速度换油。尽管如此,我认为你会发现你驾驶引擎盖的方法更加舒适,所有引擎细节都被抽象出来。