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

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项目的层次结构和职责划分。如果你有任何具体的疑问或需要进一步解释,请随时联系我!

  • 17
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值