j2ee常用设计模式之单例模式

为什么要用设计模式:

      刚学编程的朋友也许没怎么注意,注意的是怎样让程序跑起来,但是越往后越是发现,也许我的代码可以写的更简洁,也许重新写一次可以少写几个类,也许。。。。这时,我们考虑的就是代码的美。有人说大家都是用的eclipse,字体一样,格式一样,大小一样,怎么可能谁比谁的代码更美,其实则不然,有的人写的代码太丑了,一个类牵扯了N多个类,看上去就烦,看上去就想吐。这时就引入了设计模式,他能让你的代码更有水准。

 

什么是设计模式: 

      设计模式是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。当然这都是屁话,一个不清楚设计模式的人,理论讲的再好也是对牛弹琴,下面让我们一起进入设计模式的学习。

 

J2EE常用的设计模式有哪些 

      1、单例模式  2、抽象工厂模式和工厂模式  3、适配器模式  4、装饰模式  5、观察者模式  6、外观模式

      今天我主要学习单例模式,单例模式是用的很多很简单的一种设计模式。

 

何为单例模式: 

      单例模式顾名思义就是一个类只允许出现一个对象,而且提供一个返回它的唯一实力的类方法。

 

单例模式的好处: 

      1.使内存中只有一个对象,能节省内存空间。

      2.能避免繁琐的创建和销毁对象,可以提高性能。

      3.避免对共享资源的多重占用。

      4.可以全局访问。

 

什么时候用到单例模式:

      1.需要频繁实例化然后销毁的对象。

      2.创建对象时耗时过多或者耗资源过多,但又经常用到的对象。

      3.频繁访问数据库或文件的对象。

      4.对于一个类只需要一个对象。

 

废话说了这么多,下面看看实例吧:

      单例模式分两种:懒汉式单例、饿汉式单例

 

懒汉式:

public class Singleton {
	private static Singleton singleton = null;//创建一个对象引用
	private Singleton(){//构造器私有化
		
	}
	public synchronized static Singleton getInstance(){//同步方法返回一个单例对象实例
		if(singleton == null){
			singleton = new Singleton(); 
		}
		return singleton; 
	}
}

 

饿汉式:

public class Singleton {
	private static Singleton singleton = new Singleton();//创建一个实例对象
	private Singleton(){//构造器私有化
		
	}
	public static Singleton getInstance(){//返回一个单例对象实例
		return singleton;
	}
} 

 

 

 

      两者有什么区别呢?饿汉式在一开始的时候就实例化对象了,用的时候得到这个对象就好了,所以饿汉式的速度快,效率高,但是如果一直没用到就会耗费系统资源;懒汉式则相反,在用的时候才实例化,但是这也出现一个问题,在多线程时,并不能保证这个类只被实例化一次,所以我们加一个synchronized,将其编程同步方法,这样就是一个线程安全的方法了。

      鄙人还处于学习状态,请多多包涵

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值