美文网首页
【spring框架】什么是面向抽象(接口)编程

【spring框架】什么是面向抽象(接口)编程

作者: 叨唧唧的 | 来源:发表于2018-05-29 11:44 被阅读0次

    课程地址:面向抽象(接口)编程的好处就是灵活性

    面向抽象(接口)编程的好处就是灵活性

    例子:
    对于一个User的JavaBean,对他进行保存。
    其中有这几个包
    cn.edu.hpu.model:存放实体类
    cn.edu.hpu.Service:存放业务类
    cn.edu.hpu.Dao:存放数据库连接类

    如果要实现可以结合多个数据库的功能该怎么写比较灵活?用面向抽象的思想:
    UserService:

    1.  package cn.edu.hpu.service;  
    
    4.  import cn.edu.hpu.dao.UserDao;  
    5.  import cn.edu.hpu.dao.UserDaoImpl;  
    6.  import cn.edu.hpu.model.User;  
    
    9.  public class UserService {  
    10.  //Service完成的和Dao功能类似,为什么还要Service层呢?  
    11.  //原因是Service这个层次完成功能除了把数据存储到数据库之外呢  
    12.  //还可以完成“认证”等一些必要的业务功能,UserService对外  
    13.  //公开的只是业务逻辑,而UserDao单纯的负责和数据库打交道  
    14.  private UserDao userDao= new UserDaoImpl();  
    
    16.  public UserDao getUserDao() {  
    17.  return userDao;  
    18.  }  
    
    21.  public void setUserDao(UserDao userDao) {  
    22.  this.userDao = userDao;  
    23.  }  
    
    26.  public void add(User u){  
    27.  this.userDao.save(u);  
    28.  }  
    29.  }  
    

    UserDao:

    
    1.  package cn.edu.hpu.dao;  
    
    4.  import cn.edu.hpu.model.User;  
    
    7.  public interface UserDao {  
    8.  //将Dao设置为接口,然后写Dao的Impl(实现)  
    9.  //这样可以多写几个Impl,就可以实现多数据库的连接  
    10.  //MySQLDaoImpl、SqlServerDaoImpl  
    11.  //这就叫做面向抽象编程(原来是死的,没有灵活性)  
    12.  public void save(User u);  
    13.  }  
    

    其中一个Impl
    UserDaoImpl:

    
    1.  package cn.edu.hpu.dao;  
    
    4.  import cn.edu.hpu.model.User;  
    
    7.  public class UserDaoImpl implements UserDao{  
    
    10.  public void save(User u) {  
    11.  //可以写任意的数据库连接代码  
    
    13.  }  
    
    16.  }  
    
    用大白话来说,你们家要想装修,墙要用壁纸,你要说用死了,我要用强生的壁纸,那你永远只能用强生的了,你要说我用符合国家某种规格的壁纸,那么你想换谁家的都可以。所以这就是灵活性
    

    相关文章

      网友评论

          本文标题:【spring框架】什么是面向抽象(接口)编程

          本文链接:https://www.haomeiwen.com/subject/rdwojftx.html