当前位置: 首页 > news >正文

专业的网站设计seo伪原创工具

专业的网站设计,seo伪原创工具,电子商务师,wordpress时间线Ioc概念 很多初学者在刚听到Ioc和DI等概念的时候,往往一头雾水,用了很久才理解它们的意思,这里我说一下我对它们的理解。 image.pngIOC(Inversion Of Control,反转控制)一般也被理解为DI(Dependency Injection,依赖注入…

Ioc概念

很多初学者在刚听到Ioc和DI等概念的时候,往往一头雾水,用了很久才理解它们的意思,这里我说一下我对它们的理解。

img_32472b4aa86a0c67ebfa346f76928869.png
image.png

IOC(Inversion Of Control,反转控制)一般也被理解为DI(Dependency Injection,依赖注入),实际上两者还是略微有些区别,虽然它们经常性的出现在一起。

Ioc是把对象的控制权较给框架或容器,容器中存储了众多我们需要的对象,然后我们就无需再手动的在代码中创建对象。需要什么对象就直接告诉容器我们需要什么对象,容器会把对象根据一定的方式注入到我们的代码中。注入的过程被称为DI。有时候需要动态的指定我们需要什么对象,这个时候要让容器在众多对象中去寻找,容器寻找需要对象的过程,称为DL(Dependency Lookup, 依赖查找)。

按照上面的理解,那么IOC包含了DI与DL,并且多了对象注册的过程。

Ioc是一种设计模式,一种概念,主要包含的内容如下:

  • 对象的生命周期的管理
  • 依赖的解析与注入
  • 依赖的查询
  • 应用的配置

Ioc的优点

IOC容器给我们提供的最大便利之处就是更容易实现可插拔,可替换的组件。这也是接口驱动开发所带来的优势,根据接口可以提供更多灵活的子类实现,增强代码的健壮性和稳定性。

Ioc管理的组件一般是实现了某些接口的类,这些组件又会使用其它的实现某些接口的组件,它们都不需要知道接口的具体实现,因为这,组件间的替换才会如此容易。容器的任务就是帮我们创建组件的具体事例,并且把管理它们的依赖关系,把所需的具体依赖传给组件。

一个有关Ioc的案例

市场上实现Ioc的容器有多种:像Guice, Spring, Jboss等。

我们使用Spring来做一个案例:

  1. 首先下载Spring的lib,添加Jar包依赖

  2. 写测试程序

// HelloWorld接口与它的实现
public interface HelloWord {void sayHello();
}public class HelloWordImpl1 implements HelloWord {@Overridepublic void sayHello() {System.out.println("hello1");}
}public class HelloWordImpl2 implements HelloWord {@Overridepublic void sayHello() {System.out.println("hello2");}
}
  1. 新建Spring配置文件,Spring的配置可以试Java配置,也可以是xml配置,我们使用Java配置。
@Configuration
public class BeanConfig {@Beanpublic HelloWord helloWord(){//我们可以在此处创建HelloWorld的实现,在注入的时候直接指定相应的类就好了return new HelloWordImpl1();}
}
  1. 运行程序
public class App {public static void main(String[] args) {ApplicationContext applicationContext = new AnnotationConfigApplicationContext("me.aihe");HelloWord helloWord = applicationContext.getBean(HelloWord.class);helloWord.sayHello();}
}// 运行结果
hello1//当修改BeanConfig的返回HelloWorld的Bean为HelloWorldImp2时
//运行结果为
hello2    

以上是一个简单案例,但是可以稍微由此得出一些Ioc的有点:

  1. 在应用代码中,我们无需使用new关键字新建对象。在业务代码中太多的new对象会导致代码耦合度过高。
  2. 应用中只需要使用HelloWorld的接口,不用关心HelloWorld接口的实现。我们只是告诉ApplicationContext,我们需要HelloWorld类型的对象,然后就获得了一个对象。

对象关系图:


img_6af8be04adb298560807e32dfea2a64e.png
对象关系图

应用无需关心组件,只需要从容器中拿。

小结

这里我们提到了Ioc的概念,控制反转,对象控制权由对象本身转向容器;依赖注入,容器管理组件的依赖关系并提供对应的依赖对象。然后说了IOC的优点:

  • 减少代码的耦合,可以使应用更加模块化
  • 增加代码的复用率
  • 资源更加统一管理
  • 维护代码更加方便,一般只需要修改一下配置文件就ok了。
  • 提升了程序的测试性

这里仅仅是个人对IOC的理解,如果想要有更深入的理解,可以查阅更加权威的书籍与资料。

参考

  • 控制反转
  • Ioc有什么好处呢
http://www.wooajung.com/news/34419.html

相关文章:

  • 网站建设计入哪个科目品牌网站建设
  • 商城网站制作网站谷歌seo代运营
  • 网站建设营销型号的区别珠海百度关键词优化
  • 做网站的前端技术互联网推广引流公司
  • 网站做实名验证网店推广方式
  • 与魔鬼做交易的真实网站免费做网页的网站
  • 做网站旅游销售网站秒收录工具
  • ftp上传网站后怎么弄哪里有学市场营销培训班
  • 免费申请qq号注册新账号百度seo新站优化
  • 上海遨游网站建设上海谷歌推广
  • 个人注册域名可以做网站么seo在哪学
  • 深圳提供网站建设制作怎么查百度竞价关键词价格
  • 做网站公司找哪家优化网站推广网站
  • 网站右侧浮动广告代码搜索引擎优化代理
  • 制作网站 公司灰色词排名代做
  • 乐清做网站公司广告策划书
  • 连云港市建设局网站安全员考试seo网页优化平台
  • 太原市建设交易中心网站首页中国十大企业管理培训机构
  • 网站开发的技术路线新媒体运营怎么自学
  • 有什么好的网站长尾关键词挖掘熊猫
  • 企业网站建站意义广告联盟赚钱app
  • 网站做跳转网络优化有前途吗
  • 如何查看网站外链网络工程师培训一般多少钱
  • 饰品企业网站建设网站整站优化推广方案
  • 做网站要多长时间互联网营销渠道有哪些
  • 陕西网站建设维护关于友谊的连接
  • 做网站的专业叫什么软件杭州seo教程
  • 做cpa必须要有网站吗百度公司官网
  • 深圳全网站建设公司百度网站排名怎么提高
  • 成都捕鱼网站建设杭州seo平台