20190121——不慕神仙?不羡神仙! java中的单例模式
单例(Singleton)模式是Java中最简单的设计模式之一,这种类型的设计模式属于创建模式,因此模式提供了创建对象的最佳方法之一
这中模式涉及一个类,它负责创建一个对象,同时只要确保创建一个对象,这个类提供了一种方法来访问它的唯一对象,可以直接访问,而不需要实例化类的对象。
实例实现
我们将创建一个单一对象类,SingleObject,单个对象(SingleObject)类的构造函数是私有的,并且具有自身的静态实例。
SingleObject类提供了一个静态方法来获取其静态实例到外部世界,SingletonPatternDemo或示例类将使用SingleObject类获取SingleObject对象
SingleObject代码
package 单例模式;
public class SingleObject {
private static SingleObject instance=new SingleObject();
private SingleObject(){}
public static SingleObject getInstance(){
return instance;
}
public void showMessage(){
System.out.println("Hello World");
}
}
Demo实例
package 单例模式;
public class SingletonPatternDemo {
public static void main(String[] args) {
SingleObject object = SingleObject.getInstance();
object.showMessage();
}
}
聊点别的
java单例模式确保一个类有一个实例,自行提供这个实例并向整个系统提供这个实例
特点:
1.一个类只能有一个实例
2.自己创建这个实例
3.整个系统都要用到这个实例
singleton模式主要作用是保证在Java应用程序中,一个类Class只有一个实例存在,在很多操作中,比如建立目录、数据库连接都需要这样的单线程操作。一些资源管理器常常设计成为单例模式。
外部资源:譬如每台计算机可以有多台打印机,但只能有一个Printer Spooler,以避免两个打印作业同时输出到打印机。每台计算机可以有若干个通信接口,系统应当集中管理这些通信端口,以避免一个通信端口被两个请求同时调用
内部资源,譬如,大多数的软件只有一个(甚至多个)属性文件存放系统配置,这样的系统就应当由一个对象来管理这些属性文件。
单例模式:能避免实例重复创建
单例模式:应用于避免存在多个实例引起的程序逻辑错误的场合
单例模式:较节约内存