代码之家  ›  专栏  ›  技术社区  ›  Stefan

三层与n层之间的差异

  •  17
  • Stefan  · 技术社区  · 16 年前

    我刚刚看到了下面这句话:

    随着该行业从三年前的增长 从多层模型到n层模型,对象关系阻抗失配变得越来越普遍。

    但我找不到三层和n层之间区别的简明解释。我知道什么是三层,我假设n-tier只是添加了一个或多个层。我只是不确定这些额外的层次是什么。如果任何人有一个简短的解释或只是一个好的链接,这将是非常感谢。

    9 回复  |  直到 16 年前
        1
  •  26
  •   Cory House    13 年前

    在开发过程中,我们将一层理解为一个“ 责任水平 “抽象。

    这种责任级别将概念组合在一起,以提供对现实或至少与现实类似的东西的连贯语义视图。

    一个很好的层级示例遵循jerarquical模型,其中职责被仔细地分配给适当的人员。例如,一个普通的企业有商业、营销、系统、开发和测试部门(例如),这些部门代表着不同的业务层次。这样,责任就明确了,开发提供了产品,测试了产品,营销推广了产品,商业销售了产品,所有这些都是在系统保持基础设施运行的同时进行的(这只是一个例子)。

    这一比喻首先是在三层模型中提出的,其中确定了三层。通常这一层是 ,负责通过数据库进行通信和抽象, ,其中包含描述业务流程和 用户界面层 它抽象了用户与系统的交互。

    这样,我们就有了负责每一层的角色,因此,如果用户需要与系统交互,他将与一层进行通信,而不会在整个系统中陷入混乱。

    N-tier代表了前一个概念的演变,它使用更多的层来满足特定的需求。通常用户界面层和数据库抽象层保持不变,因为它们的角色非常明确,而业务规则层得到进一步细化。

    为此,我们总是考虑问题的特点以及我们现在和将来想要提供的特性。例如,如果应用程序需要与智能客户端或其预期的智能客户端一起工作,那么业务层通常分为代理层和后端层,首先将调用路由到它们应该去的地方。

    最后,重要的是 抽象责任的概念 在不同的层之间,并将语义视图中的所有相关操作集中在同一位置。

    通过那些更了解数据库本身的设计和复杂性的人。

        2
  •  11
  •   Jas Panesar    16 年前

    每一层都有自己的成分,做自己的事情。每个应用程序的层只与上面或下面的层交互。

    三层意味着蛋糕有三层。通常是底部的数据,然后是应用程序逻辑层(PHP/ruby/etc),然后是顶部的表示层(html)

    拥有n层体系结构意味着您需要为其设计多层结构。您拥有的层数将取决于您决定如何制作。

    对于大型或web应用程序来说,这似乎更有意义。

    我通常会得到一个5层的应用程序。每一层只能与上面或下面的层交互。这可以在整个应用程序中提供出色的扩展性和标准化。

    客户层

    网络浏览器


    表示层

    呈现HTML-Coldfusion/Flash/Ruby/PHP等。


    业务逻辑层

    根据需要运行流程和计算-Coldfusion/Flash/Ruby/PHP等。


    数据集成层

    (来自我的开发语言、存储过程等的查询)


    数据层

        3
  •  8
  •   GregD    16 年前

    这段引文似乎来自于此 codeproject 页它似乎还很好地解释了n层模型中包含的web服务、javascript、工作流等内容。所有3层模型不一定包含的内容。

        4
  •  7
  •   Verdant    16 年前

    任何 数字-当n=3时,则与n层相同。

    三层的通常定义是表示、逻辑和;数据(以任何顺序),是的,SOA会让新手感到困惑,因为它有时位于数据层,有时位于逻辑层,有时位于逻辑层和逻辑层;数据层。

    整个主题是……主观的。如果您需要一些层,则称其为n-tier-如果您知道n=7,则称其为7-tier或n-tier。

        5
  •  3
  •   Cervo    16 年前

    一般来说,n-tier似乎是指将中间件层进一步拆分。但除此之外,我看不到一致的定义。

        6
  •  1
  •   Andrew Hare    16 年前

    那句话是从哪里来的?他们指的是什么行业?我不得不想象这与 SOA

        7
  •  1
  •   Henry    15 年前

    嗨,请检查这个链接,这样你就可以得到关于这个好主意

    http://msdn.microsoft.com/en-us/library/ms973829.aspx

        9
  •  0
  •   Johnno Nolan    16 年前

    在上下文中看不到这句话,我假设它指的是服务和中间件的爆炸。

    推荐文章