Java设计模式--单例模式

来源:互联网 发布:爱情是如何产生的知乎 编辑:程序博客网 时间:2024/04/30 23:51

单例设计模式:保证一个类只有一个设计模式,并提供一个访问它的全局访问点。


特点:

1.构造方法私有化

2.声明一个本类对象

3.给外部提供一个静态方法获取对象实例


两种实现方式:

1.饿汉式

2.懒汉式


通过建立Singleton1和Singleton2两个类来分别实现饿汉式单例模式和懒汉式单例模式

package 单例模式;public class SingletonDemo {     public static void main(String[] args) {    //getInstance()无论调用多少次,都只有s一个对象    System.out.println("-------------饿汉式单例模式调试结果----------");Singleton1 s1=Singleton1.getInstance();Singleton1 s2=Singleton1.getInstance();s1.print(); s2.print();System.out.println("判断s1和s2是否为同一对象,答案是:"+(s1==s2));System.out.println("");System.out.println("-------------懒汉式单例模式调试结果----------");Singleton2 s3=Singleton2.getInstance();Singleton2 s4=Singleton2.getInstance();s3.print(); s4.print();System.out.println("判断s3和s4是否为同一对象,答案是:"+(s1==s2));}}/* * 把该类设计成单例设计模式 * 饿汉式 */class Singleton1{//定义一个变量来存储创建好的类实例,直接在这个创建类实例,只会创建一次,体现出“饿”private static Singleton1 s=new Singleton1();/* * 构造方法私有化 * 本类外部无法调用,也就不能被实例化 */private Singleton1() {}public static Singleton1 getInstance(){return s;}public void print() {System.out.println("饿汉式单例模式");}}class Singleton2{//定义一个变量来存储创建好的类实例,但不直接创建类实例,体现出“懒”private static Singleton2 s=null;private void SingleTon2() {}public static Singleton2 getInstance(){if(s==null){//创建类实例,只会创建一次s=new Singleton2();} return s;} public void print(){System.out.println("懒汉式单例模式");}}




0 0
原创粉丝点击