Day11_JavaWeb——项目中使用三层架构+完成UserService

一. 储备知识

1.1 软件中的三层架构

名字解释
表示层UI(User Interface layer)主要是与用户交互的界面,用于接收用户输入的数据和显示处理后用户需要的数据
业务逻辑层BLL(Business Logic Layer)UI层和DAL层之间的桥梁。实现业务逻辑(包括验证、计算和业务规划等等)
数据访问层DAL(Data Access Layer)与数据库打交道,主要实现对数据库的增删改查。将存储在数据库的数据交给业务层,同时将业务层处理的数据交到表示层去显示

1.2 三层架构的目的

使用三层架构的目的是解耦!!!

1.3 三层架构的优势和劣势

优势:

  • 结构清晰,耦合度低
  • 可维护性高,可扩展性高
  • 利于开发任务同步进行
  • 容易适应需求变化

劣势:

  • 降低了系统的性能。若不采用分层结构,很多业务可以直接访问数据库,以此获得相应的数据,如今却必须通过中间层来实现
  • 有时会导致级联的修改。此修改体现在自上而下的方向上。例如:我要在显示层增加一个功能,那么为了保证其设计符合分层式结构,可能需要在相应的业务逻辑层和数据访问层中都增加相应的代码。
  • 增加了代码量,也就增加了工作量

二. 代码示例

UserService.java

/*
 *约束用户相关操作的业务方法
 */
public interface UserService{
     ...
}

UserServiceImpl

/*
 *service层需要与数据库交互,通过dao层实现
 */
 public class UserServiceImpl implements UserService{
      private UserDao dao = new UserDaoImpl();
      @override
      public User login(User user){
            return dao.getUserByUsernameAndPassword(user);
      }
      @override
      public boolean regist(User user){
            return dao.saveUser>0;
      }
}

LoginServlet.java

public class LoginServlet extends HttpServlet{
        private static final long serialVersionUID = 1L;
        private UserService service = new UserServiceImpl();
        boolean b = service.regist(user);
        ...
}

三. 总结

  • 表现层:给用户显示页面,收集用户数据,和用户交互,不直接访问DAO层,将业务交给业务层。由业务层操作DAO层面+Servlet
  • 业务层:连接表现层和DAO层(不用写在Servlet和dao中的所有的java代码都提前到业务中),即UserService和UserServiceImpl
  • 数据访问层:DAO,直接和数据库访问的人
  • Servlet中的请求业务交给Service处理,service通过dao层和数据库进行交互
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值