从set,get方法到设计模式在到Spring

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就可以了。根本不要修改任何代码,这就可以完全实现解耦。


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

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

切勿全相信楼主所说!





  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值