实用体系结构:逻辑分层

本文探讨了为什么我们常采用n层体系结构来构建系统,尤其是三层逻辑架构:表现层、业务逻辑层和数据访问层。虽然物理分层在某些情况下有其必要性,如提高可伸缩性和安全性,但过度依赖物理分层可能导致性能损失。作者强调逻辑层的重要性,提倡以逻辑关注点分离来构建系统,同时提到了服务导向架构作为解决分布式对象问题的方案。
摘要由CSDN通过智能技术生成

实用体系结构:逻辑分层

发布日期: 2006-11-29 | 更新日期: 2006-11-29

Ted Neward

适用于:

.NET Framework

摘要:为什么我们就要使用 n(物理)层体系结构来构建系统?这是一篇基础性的文章,介绍了人们对于软件的一种理念,即当我们面对新项目时往往将系统明确地分为三个物理层次:表现层、业务逻辑层和数据访问或资源层。然而,对于循规蹈矩的做事方式应当重新审视。

有些事物是如此坚定地挺进了我们的通俗文化之中,以至于不发生灾难性的事故就无法将其摈弃,即使它们早已不能适应我们的生活。这样的例子在法律界比比皆是,在当今时代或其他时代美国的市、州甚至联邦政府针对无意义的书籍都有相关的法律(据说,在亚利桑那州的某个小镇上,在公路中间倒车是违法的)。这不禁使人联想到一个老笑话:

一个刚结婚的男人看到妻子正在准备晚餐要吃的烤肉。他吃惊地发现,妻子在将肉放到烤盘中前,分别在两端切掉了大约两英寸的肉,然后扔掉。而当男人对妻子的这一行为表示惊讶时,妻子回答道“这会使肉的味道更好。而且,我的妈妈也总是这样做”。他好奇地给岳母打了电话,问她是否也切掉烤肉的两端,以及这样做的原因。“因为这会使肉的味道更好。而且,我的妈妈也总是这样做”。男人决心找出这个习惯的源头,于是又给妻子的外婆打了电话,当外婆回答她在准备烤肉的时候也要切掉肉的两端时,男人又接着问为什么。外婆立刻回答说“因为我的盘子太小了,装不下整块肉”。

毫无疑问,对于这种明显的循规蹈矩的做事方式应当重新审视。但遗憾的是,其他情况并不都如此显而易见。

例如,为什么我们就要使用 n(物理)层体系结构来构建系统?这是一篇基础性的文章,介绍了人们对于软件的一种理念,即当我们面对新项目时往往将系统明确地分为三个物理层次:表现层,用以处理所有用户输入和数据显示问题;业务逻辑层,存放所有“业务逻辑”(本身是一个完全无定性的名词,可准确表示说话者希望其表达的意思);数据访问或资源层,存放用于检索、修改或存储数据的所有代码。当被问道为什么要这样做时,许多人只能说出最普通的答案,“因为我的老师(或前任主管或刚读过的一本书)总是这种做”。与普通的进程内调用相比,跨物理层通信会带来高达三到六个数量级的巨大性能成本,两者的差距就相当于一个是到楼下杂货店而另一个是到冥王星。(请参阅《Effective Enterprise Java》(有效的企业 Java)第 17 条)。仅仅因为妈妈总是这样做,我们就要丢掉好肉… 嗯 CPU 周期吗?

归根结底,请记住以物理分层的方式构建应用程序并不是开发人员的唯一选择。举个例子,想想 UNIX 开发人员早已熟知而 .NET 开发人员随着 Microsoft Windows PowerShell 的即将推出才开始领悟到的一个真谛:将小部件分割成可以互馈的片段

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值