码迷,mamicode.com
首页 > 其他好文 > 详细

通过实例来说明程序的耦合问题

时间:2019-11-29 13:01:25      阅读:84      评论:0      收藏:0      [点我收藏+]

标签:程序   control   state   新建   持久   连接   user   use   调用   

案例一:三层架构模式开发步骤 这里不会进行具体的数据库的操作
选择新建一个空的工程 以后的spring代码都放到这里
技术图片
技术图片
技术图片
建立一个maven工程 这里只是用来进行模拟 所以我们不用导入任何jar包的坐标 当然可以加一个测试类的jar包坐标
1、创建userdao接口类 在里面添加相应的抽象方法
技术图片
2、添加相应的实现类去实现这个接口中的方法
技术图片
3、创建一个service接口类 在类里面添加相应的业务
技术图片
4、添加service相应的实现类
技术图片
5、新建一个表现层usercontroller 在里面进行业务方法的调用
技术图片
最终执行测试方法 下面是测试的结果
技术图片
这里存在什么样的问题?注意下面图中红色标记的地方
技术图片
技术图片
业务层中使用了持久层中的对象 表现层中使用了业务层中的对象 这明显就是代码之间的耦合 你中有我 我中有你

案例二:jdbc连接
首先 创建一个maven工程
1、在pom.xml文件中导入驱动jar包坐标
2、编写jdbc测试文件
1)创建驱动
2)创建连接
3)创建preparestatement对象
4)执行sql语句 返回结果集
5)遍历集合
6)关闭连接
技术图片
注意 红色标注的地方 是采用关键字new来进行了 这就会造成编译时的依赖 加入我们我们导入驱动包 那么就没有com.mysql.jdbc.Driver这个类 那么我们编译就不会通过
那么我们通常不会去采取这种形式去创建驱动 我们会利用反射的形式
技术图片
注意红色标记的地方 这时候 我们就避免了编译时的依赖 加入我们不导入jar包坐标 这个时候编译时期是可以通过的 但是执行不了 这就是运行时的依赖

通过实例来说明程序的耦合问题

标签:程序   control   state   新建   持久   连接   user   use   调用   

原文地址:https://www.cnblogs.com/phantom576/p/11956881.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!