1. 程式人生 > 實用技巧 >Mybatis基礎:註解開發,面向介面(引出三個面向的區別)

Mybatis基礎:註解開發,面向介面(引出三個面向的區別)

面向介面的做作用:解耦

理解:定義(規範,約束),與實現的分離

  介面本身放映了系統設計人員對系統的抽象理解

  抽象介面應有兩類:

    第一類是對一個個體的抽象,他可對應一個抽象體(abstact class);

    是對一個個體某一方面的抽象,即形成一個抽象面(inface);

  一個體可能有多個抽象面,抽象體和抽象面之間是有區別的  

三個面向的區別

  1.   面向物件:我們考慮問題時,以物件為單位,要考慮例項化物件的屬性和方法
  2.   面向過程:當考慮問題時,是以一個具體流程(事務過程)為單位,考慮它的實現
  3.   面向介面:本質上與面對過程和麵對物件不是一個問題,更多的是考慮它整體的一個架構

  

使用註解實現介面

  介面+註解

public interface UserMapper {

    @Select("select * from user")
    List<User> getUsers();

}

註冊機

    <mappers>
        <mapper class="com.king.dao.UserMapper"/>
    </mappers>

測試

    @Test
    public void mapperTest(){
        SqlSession sqlSession 
= MybatisUtils.getSqlSession(); UserMapper mapper = sqlSession.getMapper(UserMapper.class); List<User> userList = mapper.getUsers(); for (User user : userList) { System.out.println(user); } sqlSession.close(); }

缺點:

本質:反射機制實現

底層:動態代理模式