浅谈设计模式——单例模式
来源:互联网 发布:杀马特网络四大家族 编辑:程序博客网 时间:2024/06/04 18:07
在实际的生活中,我们往往需要一个类只产生一种对象的情况。比如我的Windows系统的打印服务,同一时间智能为一台打印机提供服务;网站的访问统计器也是,一个网站只有一个访问统计器。也就是说,某些类在运行时智能创建一个对象,这就是我们所要讲的“单例模式”。
定义:单例模式就是确保一个类只有一个实例,并且该实例必须自动创建,并向整个系统提供该实例。
原理:单例模式可以分为饿汉式单例模式和懒汉式单例模式,饿汉式单例模式在类初始化的时候就已经创建了自身的对象,而懒汉式单例模式则是在要使用的时候才创建自身的对象。
实际代码如下:
//饿汉式单例模式public class Singleton1 {protected Singleton1() { }public static Singleton1 getInstance(){return instance;}private static Singleton1 instance = new Singleton1();}
//懒汉式单例模式public class Singleton2 {protected Singleton2(){}public static Singleton2 getInstance(){if(instance == null){instance = new Singleton2();}return instance;}private static Singleton2 instance = null;}
实际上通过上面的代码我们可以发现,单例模式的做法主要就是将类的构造函数不能是外部调用,这样也就保证了外部无法创建这个类的对象,从而只能使用该类的静态函数来创建对象。从而实现了单例模式。
使用时机:当系统要求一个类只有一个实例时,就需要使用单例设计模式。
优点:在单例模式中,客户调用类的实例时,只能调用一个公共的接口,这就为整个开发团队提供了一个共享的概念。
缺点:实现单例模式的类在实例化后,不能被别的类继承;在分布式系统中,当系统中的单例类被复制运行在多个虚拟机下时,在每一个虚拟机下都会创建一个实例对象,此时如果想知道具体哪个虚拟机下运行着哪个单例对象是很困难的,而且单例类很难实现序列化。
- 浅谈设计模式——单例模式
- 浅谈JavaScript设计模式——单例模式
- 浅谈Java设计模式—-单例模式
- iOS设计模式之—单例模式浅谈
- 单例设计模式浅谈
- 浅谈单例设计模式
- 单例设计模式 浅谈
- 浅谈单例设计模式
- 【java设计模式】——浅谈设计模式 单例模式
- 设计模式浅谈之单例模式
- 浅谈设计模式----单例模式
- 设计模式浅谈--单例模式
- 浅谈设计模式之单例模式
- 浅谈设计模式之单例模式
- Java-设计模式-单例模式浅谈
- 设计模式—单例设计模式
- 浅谈常见设计模式--单例模式 简单工厂模式
- 浅谈JAVA设计模式之——单例模式(Singleton)
- Java中抽象类和接口的区别(转)
- Linux 下setitimer函数的使用
- linux netstat命令解析
- 十进制转换二进制数
- 如何写<include/>标签
- 浅谈设计模式——单例模式
- C/C++学习疑点:回调函数和类的声明
- Android的单位及屏幕分辨率
- JavaScript字符串函数大全
- 重构随笔
- linux mysql远程访问开放步骤
- (C语言)运算符优先级
- sendmessage使用
- WP7学习笔记