热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

DAO设计模式(九)_1.设计分层初步

基本知识:

1.理解程序设计分成的思想。

2.DAO设计模式的组成以及各部分的开发。

具体内容(核心内容):

  1.程序的分层思想:

       实际上在任何的环境下分层的概念都会存在,例如:在公司里面可以按照职位分层。每一个层都是完全独立的,并且可以与其他层进行一个完整的交互。

       现在以人类交谈为例做一个简单的分层:

  • 大脑是作为所有信息存储的单位存在,可以理解为数据层;
  • 依靠语言或则是各个的行为模式来将分散的数据组合在一起;
  • 还需要一些辅助性的外表的支持;

如果要对程序进行划分,那么最常见的方式就是:显示层+控制层+业务层+数据层+数据库。    DAO设计模式(九)_1.设计分层初步

 后台业务是整个项目最核心的部分,因为现在的移动应用的火爆,所以对于前台层已经不局限于一个简单的web层了。而可能是Android、IOS.而且随着技术的发展,对于前台的开发还可能不使用Java了,使用Python或者是Node.JS进行包装.

      什么叫业务?什么叫数据呢?以陈老师牌照为例。

DAO设计模式(九)_1.设计分层初步

    业务层是整个程序提供的操作功能,而一个业务层的操作想完成需要多个数据层的控制操作一起共同完成。

     整个过程之中,数据层完整的只是一个个原子性的数据库操作;而在实际的开发之中每一个 开发的业务需要牵扯到多个原子性的操作,也就是说所有的原子性的操作业务最终在业务层完成。

   在实际的开发之中,业务的设计是非常复杂的。一个业务非常复杂的程序,往往需要一个总的业务层,后面牵扯到多个子业务层,每一个子业务层又去执行数个数据层。  

DAO设计模式(九)_1.设计分层初步

   数据层:又被称为数据访问层(Data Access Object,简称DAO),专门进行数据库的原子性操作,也就是说在数据层中最需要的就是JDBC中的PreparedStatement接口的使用;

  业务层:又被称为业务对象(Business Object,BO),但是现在也有人将其称之为服务层(service),业务层核心的目的是调用多个数据层的操作以完成整体的项目业务设计,这个是整个项目的核心所在。

实例分析:

     现在要求勇emp表(empno、ename、job、hiredate、sal、comm)实现如下的操作功能:

  • 【业务层】实现雇员数据的添加,但是需要保证被添加的雇员编号不会被重复;
  •           【数据层】判断要增加的雇员编号是否存在;
  •           【数据层】如果雇员编号不存在执行保存操作;
  • 【业务层】实现雇员数据的修改操作;
  •           【数据层】执行数据的修改操作;
  • 【业务层】实现多个雇员数据的删除操作;
  •          【数据层】执行雇员的限定的删除操作;
  • 【业务层】可以根据雇员编号查找到一个雇员的信息;
  •          【数据层】查询指定的雇员数据;
  • 【业务层】可以查询所有雇员的信息;
  •          【数据层】查询全部的雇员数据;
  • 【业务层】可以实现数据的分页显示(模糊查询),同时又可以返回所有雇员数量;
  •         【数据层】雇员数据的分页查询;
  •         【数据层】使用COUNT()函数统计出所有的雇员数量;

结论:用户提出的所有需求都应该划分为业务层,因为他指的是功能,而开发人员必须要 根据业务层去进行数据层的设计。

  


推荐阅读
  • Python 内存管理机制详解
    本文深入探讨了Python的内存管理机制,涵盖了垃圾回收、引用计数和内存池机制。通过具体示例和专业解释,帮助读者理解Python如何高效地管理和释放内存资源。 ... [详细]
  • Java项目分层架构设计与实践
    本文探讨了Java项目中应用分层的最佳实践,不仅介绍了常见的三层架构(Controller、Service、DAO),还深入分析了各层的职责划分及优化建议。通过合理的分层设计,可以提高代码的可维护性、扩展性和团队协作效率。 ... [详细]
  • JavaScript 中创建对象的多种方法
    本文详细介绍了 JavaScript 中创建对象的几种常见方式,包括对象字面量、构造函数和 Object.create 方法,并提供了示例代码和属性描述符的解释。 ... [详细]
  • 利用Selenium与ChromeDriver实现豆瓣网页全屏截图
    本文介绍了一种使用Selenium和ChromeDriver结合Python代码,轻松实现对豆瓣网站进行完整页面截图的方法。该方法不仅简单易行,而且解决了新版Selenium不再支持PhantomJS的问题。 ... [详细]
  • 鼠标悬停出现提示信息怎么做
    概述–提示:指启示,提起注意或给予提醒和解释。在excel中会经常用到给某个格子增加提醒信息,比如金额提示输入数值或最大长度值等等。设置方式也有多种,简单的,仅为单元格插入批注就可 ... [详细]
  • 雨林木风 GHOST XP SP3 经典珍藏版 V2017.11
    雨林木风 GHOST XP SP3 经典珍藏版 V2017.11 ... [详细]
  • Appium + Java 自动化测试中处理页面空白区域点击问题
    在进行移动应用自动化测试时,有时会遇到某些页面没有返回按钮,只能通过点击空白区域返回的情况。本文将探讨如何在Appium + Java环境中有效解决此类问题,并提供详细的解决方案。 ... [详细]
  • 我有一个SpringRestController,它处理API调用的版本1。继承在SpringRestControllerpackagerest.v1;RestCon ... [详细]
  • 简化报表生成:EasyReport工具的全面解析
    本文详细介绍了EasyReport,一个易于使用的开源Web报表工具。该工具支持Hadoop、HBase及多种关系型数据库,能够将SQL查询结果转换为HTML表格,并提供Excel导出、图表显示和表头冻结等功能。 ... [详细]
  • 本文介绍了如何在 Node.js 中使用 `setDefaultEncoding` 方法为可写流设置默认编码,并提供了详细的语法说明和示例代码。 ... [详细]
  • 本文详细探讨了如何通过分析单个或多个线程在瓶颈情况下的表现,来了解处理器资源的消耗。无论是单进程还是多进程环境,监控关键指标如线程数量、占用时间及调度优先级等,有助于揭示潜在的性能问题。 ... [详细]
  • 当 WebLogic 连接的数据源数据库密码发生更改时,需要在域目录的 config 文件夹下的 jdbc 配置文件中更新相应的密码。本文将详细介绍如何安全地修改和验证这些配置文件中的加密密码。 ... [详细]
  • 深入解析SpringMVC核心组件:DispatcherServlet的工作原理
    本文详细探讨了SpringMVC的核心组件——DispatcherServlet的运作机制,旨在帮助有一定Java和Spring基础的开发人员理解HTTP请求是如何被映射到Controller并执行的。文章将解答以下问题:1. HTTP请求如何映射到Controller;2. Controller是如何被执行的。 ... [详细]
  • 离线安装Grafana Cloudera Manager插件并监控CDH集群
    本文详细介绍如何离线安装Cloudera Manager (CM) 插件,并通过Grafana监控CDH集群的健康状况和资源使用情况。该插件利用CM提供的API接口进行数据获取和展示。 ... [详细]
  • 本文详细介绍了如何在Kendo UI for jQuery的数据管理组件中,将行标题字段呈现为锚点(即可点击链接),帮助开发人员更高效地实现这一功能。通过具体的代码示例和解释,即使是新手也能轻松掌握。 ... [详细]
author-avatar
手机用户2502906225
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有