传统开发模式使用对象
在正式讲解IoC容器的使用好处前,我们需要先对传统编码方式存在的问题进行分析,接下来通过传统的开发方式进行讲解演示使用。
上节课我们简单的对比了传统开发模式和IoC容器的两种模式,方便大家理解,我们通过代码对比两者,再总结为什么使用IoC容器反转来开发项目
一、传统开发模式开发项目
假如有三个开发者想从71muke网上寻找课程来学习,对应有三门课程。它们想学习对应课程的关系如下:
(1)小李想学习Spring框架学习
(2)小王想学习ASP.NET MVC开发
(3)小峰想学习MyBatis
那么传统的代码表示是怎么样的呢?
1、我们通过maven创建java项目,项目命名为IoCTest
接着输入项目名称:
2、在项目的java文件夹下创建下面的包,对应的创建几个类文件:
(1)在com.test.spring.ioc包下创建Application.java文件:
(2)在com.test.spring.ioc.entity包下创建Course.java文件和Developer.java文件:
3、在Course.java文件中编写下面的代码
package com.test.spring.ioc.entity; public class Course { private String name; private String cateName; public Course() { } public Course(String name, String cateName) { this.name = name; this.cateName = cateName; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getCateName() { return cateName; } public void setCateName(String cateName) { this.cateName = cateName; } }
4、在Developer.java文件中编写下面的代码
package com.test.spring.ioc.entity; public class Developer { private Course course; private String name; public Developer() { } public Developer(Course course, String name) { this.course = course; this.name = name; } public void learn(){ System.out.println(this.name+"正在学习71muke网的"+this.course.getName()); } public Course getCourse() { return course; } public void setCourse(Course course) { this.course = course; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
里面有一个learn方法,用于输出谁在学习什么内容。
5、在Application.java文件中编写下面的代码
package com.test.spring.ioc; import com.test.spring.ioc.entity.Course; import com.test.spring.ioc.entity.Developer; public class Application { public static void main(String[] args) { //创建三门课程 ,传统方式,我们要修改下面的代码,才能运行得到不同的结果,修改代码后企业开发流程需要编译发布测试再上线,流程就很繁琐 Course c1 = new Course("Spring框架学习","JAVA"); Course c2 = new Course("ASP.NET MVC开发","NET"); Course c3 = new Course("Mybatis","JAVA"); //开发者跟课程存在直接关联 Developer d1 = new Developer(c1,"小李"); Developer d2 = new Developer(c2,"小王"); Developer d3 = new Developer(c3,"小峰"); //执行 d1.learn(); d2.learn(); d3.learn(); } }
6、运行结果:
上面的开发方式是我们传统开发过程中的使用方式,使用上看着并没有什么大问题,但是类和类之间的关联性很强,也就是对象之间存在直接耦合性,耦合性高。
当课程或者是开发者需要学习不同的内容时,需要修改代码,在企业的开发流程中,如果代码修改后,是要走流程开发、测试、发布的流程才行。这样子开发效率很慢,效率也很低,这样的代码不利于代码的维护。
结论:对象直接引用导致对象硬性关联,程序难以扩展维护。
现在的解决办法都是使用IoC容器来解决哲宏硬性关联的问题,保障程序有更好的扩展性。
带着这样的问题我们来看看怎么通过IoC容器解决这个问题。
毕设系统定制、课程教学、问题1对1远程解答,可联系村长QQ:330168885
需要购买本课才能留言哦~