IOC和工厂模式的关系

1、首先要搞清楚为什么要用反射机制?直接创建对象不就可以了吗,这就涉及到了动态静态的概念。

  • 例子解说:假设代码中需要判断用哪个数据库,当满足0条件,用mysql数据库,当满足1条件,用oracle数据库,用反射的概念则可以在代码中不明确具体用什么数据库,具体数据库可在配置文件中配置,而且也可以应对有更多数据库增加的场景,实现动态的切换数据库;

2、为什么说IOC的实现=工厂模式+反射?

  • 理解:可以把IOC看成是工厂模式的升华,把IOC看成一个大工厂,这个大工厂里面要生成的对象都是在XML文件中定义的,然后利用java的反射编程,根据xml给出的类名动态的生成相应的对象。

  • 例子解说:在上一篇工厂模式的理解中已经提到了工厂模式的用法,仍然以创建手机对象作为例子,假设在没有使用反射的情况下,在创建对象时我们需要判断创建16G的手机对象还是32G的手机对象。但是用了反射机制之后,我们可以通过配置文件实现具体内存的手机,而不需要在代码中修改,而且此时再增加128G内存的手机也可以得到很好的扩展,代码维护更加方便。

你可能感兴趣的:(java)