依赖倒置原则以及 week2 作业
什么是依赖倒置原则
依赖倒置的原始语义是
High-level modules shouldn’t depend on low-level modules. Both modules should depend on abstractions. In addition, abstractions shouldn’t depend on details. Details depend on abstractions.
做法就是高层不依赖底层,抽象不依赖实现,全都依赖抽象
那么怎么确认什么是高层,什么是底层呢?这个是根据调用关系来确认的,一般来说越靠近用户就越是高层
具体实现依赖倒置的方法呢
一般依赖倒置使用在框架的设计中,比如Junit, spring 等,消息一进来都是先走框架然后才是我们的实现类,这样框架都掌握了控制权,这个也是好莱坞原则,公司掌握着大权,可以根据自己的需要挑选演员。
Mybatis 是如何实现依赖控制的呢(框架设计)
通过接口绑定对应的配置文件,实现具体的调用,比如
配置哪些是正确的mapper 文件
<!-- 映射文件,mybatis精髓, 后面才会细讲 --> <mappers>
<mapper resource="com/dy/dao/userDao-mapping.xml"/> </mappers>
编写具体的mapper
<mapper namespace="com.dy.dao.UserDao"> <select id="findUserById" resultType="com.dy.entity.User" > select * from user where id = #{id} </select> </mapper>
为了融入java 的调用体系中,编写接口类
public interface UserDao { public void insert(User user); }
组装方法如下
SqlSession sqlSession = getSessionFactory().openSession(); UserDao userMapper = sqlSession.getMapper(UserDao.class); User user = userMapper.findUserById(2);
uml 图
版权声明: 本文为 InfoQ 作者【不在调上】的原创文章。
原文链接:【http://xie.infoq.cn/article/6a250183a54c24d0a5fac678b】。文章转载请联系作者。
评论