分层架构(第一张章)
假如没有用分层开发,仔细分析三人的开发过程,很容易发现其中的问题:
>三人排队式的轮番工作,花费的时间是三人工作时间之和。
>后面开发的人基本都是要先花费时间熟悉前面人的代码,否则开发难以继续。
>以前的相似甚至是功能完全相同的代码难以重用、移植、因为数据显示和处理逻辑的代码掺杂在一起了。
>需求上要求的大部分功能早就实现过,只显示的方式不同,结果全部代码都全部代码都重新开发一遍。这实在不符合面向对象开发的一个重要的原则――可重用性。
根据面向对象设计(OOD)中的“单一职责(Single Responsibility Priinciple)”原则,类的设计要保持内聚性,不要负责太多不想干的功能。
分层架构:
>数据访问层:这一层处于最底层,负责与数据库的交互,也称为DAL(Data Access Layer)。
>表示层:这一层直接和用户打交道,负责显示或获取数据,也称为UI层(User Interface Layer)。无论使用控制台还是Windows窗体显示数据,都是表示层的一种的应用。
表示层依赖于数据访问层,两层职能分开,协助工作,其依赖关系。
分层开发的优势和特点:
>代码复用
>分离开发人员的关注
>无损替换
降低程序间的依赖
转载于:https://www.cnblogs.com/wangbenqing/p/6639115.html
分层架构(第一张章)相关推荐
- 走向.NET架构设计—第四章—业务层分层架构(后篇)
走向.NET架构设计-第四章-业务层分层架构(后篇) 前言: 在上一篇文章中,我们讨论了组织业务逻辑的模式:Transaction Script和Active Record,Domain Model. ...
- 走向.NET架构设计—第四章—业务层分层架构(前篇)
走向.NET架构设计-第四章-业务层分层架构(前篇) 前言:在任何一个项目中业务层毫无疑问是最重要的层,所以在设计的过程中,如何组织业务层是至关重要的.本章的讨论将会涉及Flower的架构模式一书中的 ...
- 走向.NET架构设计—第四章—业务层分层架构(中篇)
走向.NET架构设计-第四章-业务层分层架构(中篇) 前言: 在上一篇文章中,我们讨论了两种组织业务逻辑的模式:Transaction Script和Active Record.在本篇中开始讲述Dom ...
- 应用程序框架实战十八:DDD分层架构之聚合
前面已经介绍了DDD分层架构的实体和值对象,本文将介绍聚合以及与其高度相关的并发主题. 我在之前已经说过,初学者第一步需要将业务逻辑尽量放到实体或值对象中,给实体"充血",这样可以 ...
- 软件架构设计杂记: 分层架构 与 PO、VO、DTO、BO、POJO、BO/DO、DAO
软件架构设计杂记: 分层架构 与 PO.VO.DTO.BO.POJO.BO/DO.DAO 原创: 陈光剑 Kotlin 开发者社区 前天 某位计算机大师说过: 计算机科学领域任何问题,都可以间接的通过 ...
- 这 3 种 DDD 分层架构的模式,你掌握了么?
- 前言 - 在讨论DDD分层架构的模式之前,我们先一起回顾一下DDD和分层架构的相关知识. - DDD 的基本概念 - DDD(Domain DrivenDesign, ...
- 一文带你认清数据仓库“维度模型设计”与“分层架构” | 原力计划
作者 | Alice菌 责编 | 王晓曼 出品 | CSDN博客 数据仓库纬度模型设计 1. 纬度建模基本概念 维度模型是数据仓库领域大师Ralph Kimall所倡导,他的<数据仓库工具箱&g ...
- 分层结构的生活例子_详解软件分层架构设计、工作原理、实例以及具体架构
概述 今天的内容主要来自<软件架构模式>第一章,觉得还不错,所以分享给大家. 分层架构 分层架构是一种很常见的架构模式,它也叫N层架构.这种架构是大多数Jave EE应用的实际标准,因此很 ...
- 软件架构模式 mark Richards - 读后总结 1 - 分层架构
软件架构模式 Mark Richards 著 版权归 © 2015 O'Reilly Media, Inc. 所有. 原书发布链接为 Software Architecture Patterns [ ...
- 软件架构模式之分层架构
本章内容出自<软件架构模式>第一章,该书由 开发技术前线 项目组成员翻译,更多内容请访问 <软件架构模式>中文版pdf . 简介 对程序员来说很常见一种情况是在没有合理的程序架 ...
最新文章
- linux清屏命令_linux下的7个常用命令的基本使用
- 机器学习知识点(十六)集成学习AdaBoost算法Java实现
- Springboot整合Hikari数据库连接池,密码加密
- 网络低俗词_从“低俗小说”中汲取7堂课,以创建有影响力的作品集
- 如何将网页部署到maven_如何通过Rultor将Maven工件部署到CloudRepo
- java集合类(简介)
- AD库:如何从立创商城得到自己想要的库
- 10款最佳项目管理工具推荐
- IIS-网站报500.19错误代码0x8007000d问题解决
- 三维模型楼盘展示的功能及优点
- ADS1256驱动程序
- 嵌入式视频处理考虑(二)
- 用c语言实现图书信息管理系统
- JAVA光头之路(一)--环境变量
- 【Windows】修改C盘用户名称
- python合并word_用Python实现Word多文档合并
- OSPF —— cost值选路
- 【转】华为路由器、交换机设备模拟器
- 【品牌搜索】两步查找品牌数据,快速实现品牌营销布局。
- 前端工程师的摸鱼日常(10)
热门文章
- IS-IS快速收敛调优配置实例
- 云计算数据中心Spine-Leaf模型简介
- NYOJ--6--喷水装置(一)
- MySql添加外键报错:Cannot add foreign key constraint
- Ubuntu16.04下 编译安装 Tensorflow
- linux下各种解压方法
- docker:编排与部署小神器Compose
- HttpHandler和ashx要实现IRequiresSessionState接口才能访问Session信息(转载)
- mysql的sql性能分析器
- python3.4 or 3.x xlwt replaced with xlwt-future