【java结构】巧计各种层(dao、service等)的意思

2024-06-06 21:44

本文主要是介绍【java结构】巧计各种层(dao、service等)的意思,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

记记记!!

      • 1. **DAO 和 Service 巧记方法**
        • 方法一:比喻法
        • 方法二:口诀法
      • 2. **如何记住Spring项目的目录结构**
        • 缩略词法
        • 联想法
      • 3. **一个完整的记忆技巧:角色扮演法**
        • 故事示例:
      • 4. **用日常用语概括**
      • 总结

src/main/java └── com
└── example
├── Application.java # Spring Boot 应用的启动类
├── model # 数据模型
│ └── Person.java # Person 实体类
├── repository # 数据访问层(DAO)
│ └── PersonRepository.java # Person 的 DAO 接口
├── service # 业务逻辑层(Service)
│ ├── PersonService.java # Service 接口
│ └── impl
│ └── PersonServiceImpl.java # Service 接口的实现类
└── controller # 控制层(Controller)
└── PersonController.java # 处理 HTTP 请求
DAO和Repository 实际上是一个层次的不同表现形式,在现代Spring应用中,Repository 是 DAO 的增强和简化版本。
使用比喻和角色扮演的方式,可以帮助你更好地理解和记忆这些不同层次的职责。
通过缩略词、联想和口诀等方法,可以有效地记住Spring应用的层次结构和各层的职责。

1. DAO 和 Service 巧记方法

方法一:比喻法
  • DAO 层(数据访问层):可以比作“数据库门卫”。

    • 职责:负责管理进出数据库的“门禁”。它只关心数据的存取,不关心具体业务。
    • 关键点:处理与数据库的所有交互。
  • Service 层(业务逻辑层):可以比作“业务管家”。

    • 职责:负责执行业务规则和逻辑,管理多个“门卫”以完成复杂的操作。它是系统的核心,决定如何使用数据来满足业务需求。
    • 关键点:处理和执行具体的业务逻辑。

这种比喻法有助于你在脑海中形成清晰的图像,帮助理解不同层的角色和职责。

方法二:口诀法
  • DAO 层“拿数据,管门道”

    • 拿数据:负责从数据库获取和保存数据。
    • 管门道:管理数据的出入,不涉及具体的业务逻辑。
  • Service 层“办事情,管全局”

    • 办事情:负责处理应用中的所有业务逻辑和操作。
    • 管全局:从全局的业务需求出发,调用DAO层的功能来实现具体的业务逻辑。

2. 如何记住Spring项目的目录结构

可以使用缩略词和联想法来记住典型的Spring项目目录结构:

缩略词法

使用首字母缩略词来记住常见的文件夹:

  • Model (数据模型)
  • Repository (数据访问层)
  • Service (业务逻辑层)
  • Controller (控制层)

这样就形成了一个容易记忆的词:“MRSC”。

联想法

将每个层次的职责和实际生活中的角色进行联想:

  • Model:数据的“模型”,像建模一样,定义了数据的结构。
  • Repository:数据的“存储库”,负责管理数据的存取,就像图书馆的管理员。
  • Service:业务的“服务”,就像服务员一样,满足客户(应用)的具体需求。
  • Controller:请求的“控制者”,就像指挥官一样,接收和处理指令(用户的请求)。

3. 一个完整的记忆技巧:角色扮演法

你可以把每个层次想象成一个角色,并将它们置于一个故事中:

  • Model:想象它是一个“建筑师”,它定义了如何设计你的数据。
  • Repository:是“图书管理员”,负责存储和检索书籍(数据)。
  • Service:是“酒店经理”,它管理所有的操作和服务,确保客人(请求)得到满意的处理。
  • Controller:是“接待员”,它接收所有来访者(请求)并引导他们到正确的地方(调用Service)。
故事示例:
  1. **建筑师(Model)**设计了一座图书馆。
  2. **图书管理员(Repository)**管理和组织所有书籍,确保他们可以被迅速找到。
  3. **酒店经理(Service)**知道如何提供优质的服务,指挥图书管理员去找书,并为来访者(请求)提供帮助。
  4. **接待员(Controller)**接待来访者,了解他们的需求,然后告诉酒店经理。

4. 用日常用语概括

  • DAO 层:只“关注数据”,无视其他事物。
  • Service 层:要“处理业务”,管理各种数据操作。

这种简洁的概括可以帮助你快速回忆起它们的主要职责。

总结

记忆软件架构的不同层次和它们的职责可以通过简单的比喻、缩略词、联想和故事化的方法来实现。这些方法有助于将抽象的概念形象化,从而更容易记住和理解。希望这些技巧能帮助你更好地掌握Spring项目的层次结构和职责划分。如果你有任何具体的疑问或需要进一步解释,请随时联系我!

这篇关于【java结构】巧计各种层(dao、service等)的意思的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1037309

相关文章

Java实现检查多个时间段是否有重合

《Java实现检查多个时间段是否有重合》这篇文章主要为大家详细介绍了如何使用Java实现检查多个时间段是否有重合,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录流程概述步骤详解China编程步骤1:定义时间段类步骤2:添加时间段步骤3:检查时间段是否有重合步骤4:输出结果示例代码结语作

Java中String字符串使用避坑指南

《Java中String字符串使用避坑指南》Java中的String字符串是我们日常编程中用得最多的类之一,看似简单的String使用,却隐藏着不少“坑”,如果不注意,可能会导致性能问题、意外的错误容... 目录8个避坑点如下:1. 字符串的不可变性:每次修改都创建新对象2. 使用 == 比较字符串,陷阱满

Java判断多个时间段是否重合的方法小结

《Java判断多个时间段是否重合的方法小结》这篇文章主要为大家详细介绍了Java中判断多个时间段是否重合的方法,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录判断多个时间段是否有间隔判断时间段集合是否与某时间段重合判断多个时间段是否有间隔实体类内容public class D

IDEA编译报错“java: 常量字符串过长”的原因及解决方法

《IDEA编译报错“java:常量字符串过长”的原因及解决方法》今天在开发过程中,由于尝试将一个文件的Base64字符串设置为常量,结果导致IDEA编译的时候出现了如下报错java:常量字符串过长,... 目录一、问题描述二、问题原因2.1 理论角度2.2 源码角度三、解决方案解决方案①:StringBui

Java覆盖第三方jar包中的某一个类的实现方法

《Java覆盖第三方jar包中的某一个类的实现方法》在我们日常的开发中,经常需要使用第三方的jar包,有时候我们会发现第三方的jar包中的某一个类有问题,或者我们需要定制化修改其中的逻辑,那么应该如何... 目录一、需求描述二、示例描述三、操作步骤四、验证结果五、实现原理一、需求描述需求描述如下:需要在

Java中ArrayList和LinkedList有什么区别举例详解

《Java中ArrayList和LinkedList有什么区别举例详解》:本文主要介绍Java中ArrayList和LinkedList区别的相关资料,包括数据结构特性、核心操作性能、内存与GC影... 目录一、底层数据结构二、核心操作性能对比三、内存与 GC 影响四、扩容机制五、线程安全与并发方案六、工程

JavaScript中的reduce方法执行过程、使用场景及进阶用法

《JavaScript中的reduce方法执行过程、使用场景及进阶用法》:本文主要介绍JavaScript中的reduce方法执行过程、使用场景及进阶用法的相关资料,reduce是JavaScri... 目录1. 什么是reduce2. reduce语法2.1 语法2.2 参数说明3. reduce执行过程

如何使用Java实现请求deepseek

《如何使用Java实现请求deepseek》这篇文章主要为大家详细介绍了如何使用Java实现请求deepseek功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1.deepseek的api创建2.Java实现请求deepseek2.1 pom文件2.2 json转化文件2.2

Java调用DeepSeek API的最佳实践及详细代码示例

《Java调用DeepSeekAPI的最佳实践及详细代码示例》:本文主要介绍如何使用Java调用DeepSeekAPI,包括获取API密钥、添加HTTP客户端依赖、创建HTTP请求、处理响应、... 目录1. 获取API密钥2. 添加HTTP客户端依赖3. 创建HTTP请求4. 处理响应5. 错误处理6.

Spring AI集成DeepSeek的详细步骤

《SpringAI集成DeepSeek的详细步骤》DeepSeek作为一款卓越的国产AI模型,越来越多的公司考虑在自己的应用中集成,对于Java应用来说,我们可以借助SpringAI集成DeepSe... 目录DeepSeek 介绍Spring AI 是什么?1、环境准备2、构建项目2.1、pom依赖2.2