Spring 入门学习 —— XML 格式文件介绍(十三)(工厂方法与FactoryBean [1])

87 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第17天,点击查看活动详情

上一篇文章我们介绍完了bean 的作用域相关的知识,这篇文章我们来介绍工厂方法与FactoryBean 相关的内容。

概念引入

我们在开发中十分强调“面向接口编程”,但是我们在遵守这个原则的同时,需要注意一点,那就是:

对象虽然可以通过声明接口的方式,来避免对特定的实现类的耦合,但是最终总需要一种方式来将声明依赖接口的对象与那个接口的实现类关联起来。

我们也可以想到,如果只依赖一个没有任何功能的接口是没有任何意义,也没有任何用处的。

按照我们正常思维,我们假设以下场景:

public class Test {
    private DepenedntedInterface deInterface;
    public Test() {
        deInterface = new DependentedInterfaceImpl();
    }
}

在Test 类中依赖一个DepenedntedInterface 接口,然后在Test 类的构造方法中new 了一个对应的实现类。这样做虽然可以实现既定的功能,但是这却将接口的实现类和Test 类做了一个完全的耦合,我们应该避免这么做。

但是如果Test 类是在我们自己的项目中,由我们自己开发,那么我们可以使用依赖注入的很是避免在代码中存在这样的耦合。

但是有的时候我们在依赖其他的第三方库,我们需要实例化并且使用第三方库中的相关类的时候,这个时候,接口和实现类的耦合性就需要使用其他方式来避免。

通常的方法就是使用工厂方法模式,工厂方法模式在面试中也经常被问到,我们一定要去了解其相关的内容。关于FactoryBean 如何使用工厂方法模式的具体内容我们在之后的文章中做介绍。

总结

这篇文章讲述了工厂方法与FactoryBean 的相关的概念引入,后续会沿着这个思路继续铺开做详细的介绍。