`

软件分层的优缺点

阅读更多

一、软件层的特性

 

   软件层有如下特性:

 

    1、每个层由一组相关的类或组件构成,共同完成特定的功能。

 

    2、层与层之间存在自上而下的依赖关系,即上层组件会访问下层的组件API,而下层组件不依赖于上层组件。例如表示

层依赖于业务逻辑层,而业务层依赖于数据层。

 

    3、每个层对上层公开API,但具体的实现细节对外是透明的,当某一层的实现发生变化时,只要API不变,就不会影响到其他层的实现。

 

    总的来讲,软件分层的最基本特征就是层与层之间存在自上而下的依赖关系。

 

二、软件分层的优点

 

   恰当的进行软件分层,可以提高软件的以下性能:

 

    1、可伸缩性,指应用程序是否能支持更多的用户。

 

    2、可维护性、灵活性,比如当需求发生变化时,只需要修改软件的一部分,不会影响到其他部分的代码,降低了层 

与层之间的耦合度。

 

    3、可扩展性,可以很方便的在现有系统中新功能,而层少越少,新增加的功能就越容易破坏现有程序的结构,层数多的话,就可以在第个层中找扩展点。

 

    4、可重用性,可以减少程序代码冗余,每一层都可以多种用途,满足于多种需求,比如,业务逻辑层可以被多种表述层共享。

 

     5、可管理性,程序分层后可以降低系统管理的难易程序,将程序分为多层后,可以将工作分解给不同的开发小组,从而便于管理,系统越复杂、规模越大,分的层数就需越多。

 

三、软件分层的缺点

 

      软件分层越多,对软件设计人员的要求也就越高,在设计阶段,必须花更多的时间构思合理的体系结构,如考虑如何划

分层、定义每个层的职责;如果在体系结构方面存在缺陷,比如,层与层之间出现自下而上的依赖关系,一旦业务逻辑发生

变化,可能表示层的代码也要修改。

 

      在调试方面,随着层数增加,调试也会越困难,比如我们常用的三层架构,依赖关系都是自上而下的,比如表现层出现

了bug,可能是表现层出现的问题,也有可能是业务逻辑层出现的,也有可能是数据访问层出现的,像这种情况下,我们调

试时就需要将每层的开发人员联合起来,才可能找到bug的原因。

 

      软件分层越多,系统的性能也会有所影响。

分享到:
评论
1 楼 wushipan_easy 2012-02-29  
“1、可伸缩性,指应用程序是否能支持更多的用户"  怎么解释可以支持更多的用户

相关推荐

    10种常见的软件体系架构模式分析以及它们的用法、优缺点.docx

    以下是十种常见的软件体系架构模式的详细分析,以及它们的适用场景、优点和缺点。 1. **分层模式**: - **描述**:分层模式将系统分解为多个独立的层次,每个层次负责特定的职责,例如表示层(UI)、应用层(服务...

    Mvc的优缺点.txt

    ### MVC的缺点 1. **学习曲线陡峭**:对于初学者来说,完全掌握MVC模式可能需要一段时间的学习和实践。这是因为MVC涉及到多个抽象概念,需要理解每个组件的具体作用及其相互关系。 2. **初期开发成本较高**:采用...

    优秀的PHP程序员至少应该了解PHP代码的优缺点

    标题和描述中提到的核心知识点是,优秀的PHP程序员需要理解PHP代码的优缺点,这涉及到代码的结构化、规范化、自适应性和安全性。以下是对这些方面更详细的解释: 1. 结构化代码:良好的PHP代码应该遵循模块化和分层...

    C/S、B/S、分层、多层架构参考

    理解这些架构模式及其优缺点,有助于做出更适合项目的决策。 总结起来,C/S和B/S架构分别代表了本地应用和Web应用的两种典型模型,而分层和多层架构则提供了系统设计的组织原则,帮助我们构建灵活、可维护的大型...

    众多的国外著名大学计算机的博士论文和硕士论文(软件设计和软件工程).rar

    3. 架构设计:探讨不同软件架构风格,如微服务架构、事件驱动架构以及分层架构,分析其优缺点和适用场景。 4. 用户体验设计:强调用户界面和交互设计的重要性,研究如何提高软件的人性化和易用性。 5. 可测试性...

    软件体系结构 课件

    每种架构模式都有其适用场景和优缺点,理解和掌握这些模式,可以帮助开发者根据项目需求做出最佳选择。 总结来说,软件体系结构是软件开发的基石,它指导着软件的构造和演进。通过对软件体系结构的深入研究和实践,...

    软件架构实践 第2版

    其次,书中涵盖了多种常见的架构模式,如分层架构、微服务架构、事件驱动架构等,并解释了它们的适用场景和优缺点。通过实例,读者可以学习如何根据项目特点选择或组合不同的架构模式,以实现系统的解耦、模块化和...

    厦门大学软件工程往年试卷加答案.zip

    考生需具备一定的设计思维和架构意识,理解各种设计模式的优缺点。 4. 编程语言与算法:虽然不是软件工程专业的核心,但掌握至少一两种编程语言(如C++、Java或Python)和基本算法(如排序、搜索)是必要的。试卷中...

    浙江广播电视大学2006年春季学期开放教育本科期末考试三套软件工程软件体系结构试卷及答案.rar

    1. **体系结构风格**:不同的体系结构风格,如层次式、客户-服务器、事件驱动、微服务等,对应不同的软件设计模式,每种风格都有其特定的优缺点和适用场景。 2. **组件与接口**:软件系统由多个组件构成,每个组件...

    软件体系结构软件架构讲义PDF-中国系统分析员首席顾问讲义

    讲义将详细阐述常见的软件架构模式,如微服务架构、分层架构、事件驱动架构等,并分析每种模式的优缺点及其适用场景。 三、组件与接口 软件架构由多个组件构成,这些组件通过接口相互交互。这部分内容将探讨如何...

    清华软件工程ppt课件

    解释软件生命周期模型,如瀑布模型、增量模型、迭代模型等,并对比不同模型的优缺点。 2. **需求工程**:深入讨论需求获取、分析、定义和验证的方法,如用例图、需求规格说明书等。介绍如何编写有效的用户故事和...

    顶级业界专家揭密软件设计之美

    本书可能涵盖了诸如分层架构、微服务架构、事件驱动架构等不同类型的架构设计,并分析了它们各自的适用场景和优缺点。此外,还可能讨论了架构决策的重要性,以及如何通过架构评估和演化来保证系统的长期健康。 在...

    本科自考-软件工程-02333-重点难点汇集.pdf

    6. 软件工程方法论:敏捷开发、迭代开发、螺旋模型、瀑布模型等都是常见的软件开发模型,各有优缺点,适用于不同的项目和环境。 7. 质量保证和风险管理:软件工程中,要关注软件的质量属性,如可靠性、可用性、安全...

    软件架构师教程,系统架构师讲义

    教程会详细介绍这些模式的优缺点以及适用场景,帮助读者在实际项目中灵活应用。 三、架构分析与设计 本部分将详细讲解如何进行需求分析,如何从需求中提炼出架构决策,以及如何通过架构视图来表达设计意图。此外,...

    基于.NET平台的分层架构实战(完整资料).doc

    总结整个分层架构的设计与实现,分析优缺点,以及可能的优化方案。 本实战系列对.NET框架2.0下的分层架构进行了详细介绍,但并未涵盖3.5及更高版本的新特性,如LINQ和ASP.NET MVC。开发者需具备C#、ASP.NET、设计...

    软件系统架构师(电子书)

    读者将学习到RESTful API设计、消息队列、RPC等通信方式及其优缺点。 5. **可扩展性与弹性**:随着业务增长,系统需要具备良好的扩展性以应对流量变化。书中将讨论水平扩展、垂直扩展策略,以及如何利用负载均衡、...

Global site tag (gtag.js) - Google Analytics