简单例子解释dao service domain结构设计

1. 业务需求
  • 人的信息person(name,age,gender)
  • 把(“jack”, 25, ‘男’)这条信息插入数据库
2. 不用架构怎么做?

在这里插入图片描述

  • 一个User类、一个连接类即可,App此处代表操作数据的视图,看起来是不是很简洁
  • 问题是,如果我要换个数据库连接,那么源代码就得改变,各个类之间的耦合性非常高,牵一发而动全身,代码的扩展性、健壮性不好;
3. 使用架构、框架
  • maven + spring-context + mvc架构
    在这里插入图片描述
    在这里插入图片描述
  • 有什么业务需求,直接使用对应的service对象去解决,service就是负责业务逻辑
  • service内含dao对象作为属性,具体处理业务方法的参数列表中往往是domain层的对象,他就起到一个承上启下的功能,service从不考虑业务具体实现细节,它只考虑在逻辑上,应该整合哪些类来完成一个业务;
  • domain层包含哪些与数据库中表一一对应的那些实体类,例如user、player,也可以做一些数据过滤的逻辑事务,毕竟给实体对象的属性赋值是依靠domain对象的构造器或者setter
  • dao是持久层,负责与数据库的联络,一般会是接口+实现类的模式,因为要连接的数据库不止一种,但是一个业务实现逻辑只有一个,这就完美符合【一个接口+多个实现类】的模式,其中多个实现类主要是不同种类的数据库造成的;
  • 再把这个架构融入spring容器中,把service、dao层的对象交给spring容器去创建,代码中只面向接口编程,到时候要切换不同的数据库,可以在pring配置文件中修改或配置,代码不需要改动
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值