当前位置: 首页>后端>正文

spring get 数组 spring get set

1:浅谈set,get方法

任何写java的人都用过上面2个方法,至于为什么,想必每个人都有自己的理解吧?

看下面的例子中的注释:

public class Ppt {

    //1直接new 具体对象
    //FastSot fastSot = new FastSot();

    //2使用接口,直接new 接口的子类
    //FastSotF fastSotF = new fastSot();

    //3配置接口,采用set方法运行时设置值
    FastSotF fastSotF;
    public FastSotF getFastSotF() {
        return fastSotF;
    }
    public void setFastSotF(FastSotF fastSotF) {
        this.fastSotF = fastSotF;
    }
}


第一种方式中,直接new对象,肯定是最差的方式,比如需要新建一个功能或实现,需要修改1处的代码

第二种方式比第一种稍好,采用接口,添加新功能的时候,只需要添加一个新的实现类,修改一点代码,但是还是要修改代码,存在着代码耦合

那么采用第三种方式,我们添加新功能的时候,只需要添加新的实现类,采用set方法设置添加的实现类。不要修改任何代码。由此可见这里就不存在任何耦合

总结:第三种方式就是设计模式中的策略模式

    目的是解耦,用到了java的动态运行时绑定具体实例。

     能使用接口请优先使用接口

说解耦其实很简单,就是减少代码之间的相互关联,利于以后的扩展。有很多种实现方式,以后遇到了,我会一点一点加上去。

2:策略模式

不直接创建对象,运行时动态绑定实例。

3:关于spring的依赖注入和控制反转

由上面来解释依赖注入:不直接创建对象,运行时动态绑定实例。

控制反转:上面的例子中,我们并没有直接创建实例,那spring怎么创建呢?

我们经常看见配置文件: 

<bean id=“sessionFactory”  ....../>

具体类:

class ;..{
SessionFactory sf ;
//set get
}

       我们声明了如何创建实例以及什么样的实例,和实例相关的信息,spring根据配置信息创建和用类的set方法注入到具体需要中。

如果我们需要采用另外一种sf的实现方式,那么只要在配置文件(或者注释)中新建一个bean替换原来的bean就可以了。根本不要修改任何代码,这就可以完全实现解耦。

总结:我们为什么要推荐使用接口?因为可以用子类来动态绑定,利于扩展和代码解耦。

上面是在下的肤浅认识,如有错误请指正。

切勿全相信楼主所说!


https://www.xamrdz.com/backend/3e91957512.html

相关文章: