假如没有用分层开发,仔细分析三人的开发过程,很容易发现其中的问题:

>三人排队式的轮番工作,花费的时间是三人工作时间之和。

>后面开发的人基本都是要先花费时间熟悉前面人的代码,否则开发难以继续。

>以前的相似甚至是功能完全相同的代码难以重用、移植、因为数据显示和处理逻辑的代码掺杂在一起了。

>需求上要求的大部分功能早就实现过,只显示的方式不同,结果全部代码都全部代码都重新开发一遍。这实在不符合面向对象开发的一个重要的原则――可重用性。

根据面向对象设计(OOD)中的“单一职责(Single   Responsibility     Priinciple)”原则,类的设计要保持内聚性,不要负责太多不想干的功能。

分层架构:

>数据访问层:这一层处于最底层,负责与数据库的交互,也称为DAL(Data  Access   Layer)。

>表示层:这一层直接和用户打交道,负责显示或获取数据,也称为UI层(User  Interface  Layer)。无论使用控制台还是Windows窗体显示数据,都是表示层的一种的应用。

表示层依赖于数据访问层,两层职能分开,协助工作,其依赖关系。

分层开发的优势和特点:

>代码复用

>分离开发人员的关注

>无损替换

降低程序间的依赖

转载于:https://www.cnblogs.com/wangbenqing/p/6639115.html

分层架构(第一张章)相关推荐

  1. 走向.NET架构设计—第四章—业务层分层架构(后篇)

    走向.NET架构设计-第四章-业务层分层架构(后篇) 前言: 在上一篇文章中,我们讨论了组织业务逻辑的模式:Transaction Script和Active Record,Domain Model. ...

  2. 走向.NET架构设计—第四章—业务层分层架构(前篇)

    走向.NET架构设计-第四章-业务层分层架构(前篇) 前言:在任何一个项目中业务层毫无疑问是最重要的层,所以在设计的过程中,如何组织业务层是至关重要的.本章的讨论将会涉及Flower的架构模式一书中的 ...

  3. 走向.NET架构设计—第四章—业务层分层架构(中篇)

    走向.NET架构设计-第四章-业务层分层架构(中篇) 前言: 在上一篇文章中,我们讨论了两种组织业务逻辑的模式:Transaction Script和Active Record.在本篇中开始讲述Dom ...

  4. 应用程序框架实战十八:DDD分层架构之聚合

    前面已经介绍了DDD分层架构的实体和值对象,本文将介绍聚合以及与其高度相关的并发主题. 我在之前已经说过,初学者第一步需要将业务逻辑尽量放到实体或值对象中,给实体"充血",这样可以 ...

  5. 软件架构设计杂记: 分层架构 与 PO、VO、DTO、BO、POJO、BO/DO、DAO

    软件架构设计杂记: 分层架构 与 PO.VO.DTO.BO.POJO.BO/DO.DAO 原创: 陈光剑 Kotlin 开发者社区 前天 某位计算机大师说过: 计算机科学领域任何问题,都可以间接的通过 ...

  6. 这 3 种 DDD 分层架构的模式,你掌握了么?

    -     前言    - 在讨论DDD分层架构的模式之前,我们先一起回顾一下DDD和分层架构的相关知识. -     DDD 的基本概念     - DDD(Domain DrivenDesign, ...

  7. 一文带你认清数据仓库“维度模型设计”与“分层架构” | 原力计划

    作者 | Alice菌 责编 | 王晓曼 出品 | CSDN博客 数据仓库纬度模型设计 1. 纬度建模基本概念 维度模型是数据仓库领域大师Ralph Kimall所倡导,他的<数据仓库工具箱&g ...

  8. 分层结构的生活例子_详解软件分层架构设计、工作原理、实例以及具体架构

    概述 今天的内容主要来自<软件架构模式>第一章,觉得还不错,所以分享给大家. 分层架构 分层架构是一种很常见的架构模式,它也叫N层架构.这种架构是大多数Jave EE应用的实际标准,因此很 ...

  9. 软件架构模式 mark Richards - 读后总结 1 - 分层架构

    软件架构模式 Mark Richards 著 版权归 © 2015 O'Reilly Media, Inc. 所有. 原书发布链接为  Software Architecture Patterns [ ...

  10. 软件架构模式之分层架构

    本章内容出自<软件架构模式>第一章,该书由 开发技术前线 项目组成员翻译,更多内容请访问 <软件架构模式>中文版pdf . 简介 对程序员来说很常见一种情况是在没有合理的程序架 ...

最新文章

  1. linux清屏命令_linux下的7个常用命令的基本使用
  2. 机器学习知识点(十六)集成学习AdaBoost算法Java实现
  3. Springboot整合Hikari数据库连接池,密码加密
  4. 网络低俗词_从“低俗小说”中汲取7堂课,以创建有影响力的作品集
  5. 如何将网页部署到maven_如何通过Rultor将Maven工件部署到CloudRepo
  6. java集合类(简介)
  7. AD库:如何从立创商城得到自己想要的库
  8. 10款最佳项目管理工具推荐
  9. IIS-网站报500.19错误代码0x8007000d问题解决
  10. 三维模型楼盘展示的功能及优点
  11. ADS1256驱动程序
  12. 嵌入式视频处理考虑(二)
  13. 用c语言实现图书信息管理系统
  14. JAVA光头之路(一)--环境变量
  15. 【Windows】修改C盘用户名称
  16. python合并word_用Python实现Word多文档合并
  17. OSPF —— cost值选路
  18. 【转】华为路由器、交换机设备模拟器
  19. 【品牌搜索】两步查找品牌数据,快速实现品牌营销布局。
  20. 前端工程师的摸鱼日常(10)

热门文章

  1. IS-IS快速收敛调优配置实例
  2. 云计算数据中心Spine-Leaf模型简介
  3. NYOJ--6--喷水装置(一)
  4. MySql添加外键报错:Cannot add foreign key constraint
  5. Ubuntu16.04下 编译安装 Tensorflow
  6. linux下各种解压方法
  7. docker:编排与部署小神器Compose
  8. HttpHandler和ashx要实现IRequiresSessionState接口才能访问Session信息(转载)
  9. mysql的sql性能分析器
  10. python3.4 or 3.x xlwt replaced with xlwt-future