工厂设计模式+反射+XML配置文件实战演练

通过Java的多态性,我们能知道,当父类引用可以指向子类对象从而调用父类中子类的重写方法,以及接口引用可以指向实现类对象从而调用实现类对象的重写方法。但在项目中,我发现代码直接使用dao层接口引用就能使用实现类的方法,为了了解其中的过程,我查阅了相关资料,了解到这个是Spring的IoC容器的作用。

Spring的IoC即Inversion of Control,意思就是控制反转控制反转指的就是将对象的创建权反转给(交给)了Spring,其作用是实现了程序的解耦合。也可这样解释:获取对象的方式变了,对象创建的控制权不是"使用者",而是"框架"或者"容器"。用更通俗的话来说,IoC就是指对象的创建,并不是在代码中用new操作new出来的,而是通过Spring进行配置创建的。

Spring的IoC的底层实现原理是工厂设计模式+反射+XML配置文件。即先写一个接口,再写该接口的一个实现类,通过解析XML配置文件获取该实现类的配置属性,在工厂类中使用反射机制得到实现类相应的对象。

以下为IoC底层实现原理的代码实现:

先写一个接口

public interface BaseInterface {
    void say(String words);
    void bark();
    void fly();
}

再写一个接口的实现类

public class BaseImpl implements BaseInterface {
    @Override
    public void say(String words) {
        System.out.println(words);
    }

    @Override
    public void bark() {
        System.out.println("barking");
    }

    @Override
    public void fly() {
        System.out.println("I'm flying");
    }
}

若在一般的多态实现上,我们可以通过接口引用调用实现类对象来使用实现类的方法

public class InterfaceTest {
    public static void main(String[] args) {
        BaseInterface baseInterface = new BaseImpl();
        baseInterface.bark();
        baseInterface.say("HelloWorld");
        baseInterface.fly();
    }
}

但为了松耦合,我们采用工厂设计模式


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值