什么是我们真正需要的3层架构的例子吗? 可其中大部分使用的是3层架构的应用程序的使用2层体系结构做什么?
注:我想看看3层架构的价值,我觉得大部分的应用程序,有3层,现在可以在2层来完成,所以我找实例,我们绝对需要3层和没有异常这种需要。
什么是我们真正需要的3层架构的例子吗? 可其中大部分使用的是3层架构的应用程序的使用2层体系结构做什么?
注:我想看看3层架构的价值,我觉得大部分的应用程序,有3层,现在可以在2层来完成,所以我找实例,我们绝对需要3层和没有异常这种需要。
我猜你的意思是分层(分离的逻辑单元),而不是分层(分离/部署的物理单位)。 分层系统的一个例子是借鉴了数据从数据库中第三层)的web服务器(1层)提供的网页(另一层)。
分层架构的通常目的是分离出的责任。 这有两个主要优点(其中包括)。
首先,你的设计会更清楚的责任不会被搅浑,因此代码会更容易阅读,理解和维护。
在一个Web应用程序,例如,如果您的网页也处理业务逻辑(或恐怖数据访问恐怖)以及显示的页面,那么你可以相当肯定,多页将是 - 其次,可能你会被减少重复试图做同样的或类似的东西。
你并不需要建筑师(如成层,虽然也有其他方式)的任何一款软件,但是从琐碎的事情除了东西如果不这样做的结果将是一个不可维护的混乱。
道具FinnNk,但让我给你的会发生什么,当你不分离的层的例子。 我工作,多年来,对被严重分离出生时的一个项目。 所有三个层次 - 更多,如果你相信什么tuinstoel说 - 集中到单独的JSP页面。 我敢肯定,这似乎是一个在当时聪明的事情(更快的代码,当你刚开始),但这个畸形的不断壮大和成长,也没有人把重构的时间。
我们现在有2000+的JSP页面,重复的代码散落各处。 制作模式变化需要仔细回溯找出页面可能进行,而且每个页面的单独测试。 没有人在管理层认为花钱去解决这个问题的时候它很重要 - 短期收益,长期亏损。
做。 不。 走。 这个。 路线。
分离层导致更好,更快,更容易测试,更模块化的代码。 你会感谢自己吧,和(更重要的),谁进来之后,你会感谢你的人。
一些数据库暴露REST接口给外界,例如NoSQL数据库的CouchDB和RavenDB。 这意味着,在您的浏览器中运行的JavaScript可以调用数据库没有一个中间层。
例如见: http://www.infoq.com/news/2010/06/couchdb
“表现良好HTTP / REST接口和API清洁和简单的两层应用程序(HTML + JavaScript的在浏览器+榻+ JavaScript作为服务器)”
Oracle有一个web服务器里面,你可以使用存储的特效也暴露REST接口到外面的世界。 因此,浏览器的JavaScript还可以调用Oracle数据库没有一个中间层。
你总是需要一个中间层时,所有你想要的是从数据库中获取的一些数据? 我怀疑这一需求。
(TTT原名Tuinstoel)
可驱动你一些情况下从移动2层至3层:1-你的系统具有不同类型客户端(Desktop,网络,移动等)2-你的系统具有异构类型的数据源(例如非。 DB资源)
3-您的系统需要特定的客户端/服务器通信协议4-要隐藏和从客户端安全5-数据层您可以通过服务器集群和负载平衡6-需要服务器到服务器的集成需要可扩展性是透明的客户7-要使用共享资源,你想从DB服务器或服务器9-组解耦的客户端,您希望把业务逻辑放到特定的一个单独的层来简化系统维护8客户端(如DB连接)的数平台10你想减少客户端和数据库之间的流量
首先,巨大的问题。 正如其他人指出,两者都有可取之处。 “关注的分离 - ”是3层的主要优势和以多种方式,支付股息:
有几个人,但这些希望得到的潜在好处的想法
那么,如果你有一个网站......你可能有一些JavaScript代码,所以这是一次层次,你必须在服务器的业务逻辑,你必须储存东西的数据库。 这在我看来是三层。 当然你可以在数据库中使用存储的特效,并跳过业务逻辑层这样就可以建立一个网站,有两个层次,如果你想要,但如果你不希望使用存储的特效,你将有三个层次。