单例模式中 private static Singleton instance = new Singleton() 很多不用final修饰,

[复制链接]
查看11 | 回复2 | 2018-5-9 12:45:17 | 显示全部楼层 |阅读模式
你首先要明白final修饰变量的功能是,一次初始化不能再被修改,既然是私有变量,就只考虑内部对这个变量的处理了,如果需要修改就不加final而在单例模式中,如果存在释放资源的情况下,就不能加final修饰了,比如针对你贴的这个单例,如果提供方法public void releaseInstance(){
if(instance != null){
instance = null;
}}释放资源之后,如果需要重新使用这个单例,就必须存在重新初始化的过程,所以不能加final,对于不需要释放资源的情况,可以加final总而言之,要不要加final修饰,可以根据情况而定...
回复

使用道具 举报

千问 | 2018-5-9 12:45:17 | 显示全部楼层
如果你用final修饰后,别人就不能修改你的代码了,就算继承也不可以修改,健壮性很高。...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行