首页 > 其他 > 详细

设计模式

时间:2020-05-01 19:48:48      阅读:57      评论:0      收藏:0      [点我收藏+]

1.单例模式

单例模式特点:1.单例类只能有一个实例(单例模式的构造方法是修饰符是private)

       2.单例类必须自己创建自己唯一的实例

       3.单例类必须给所有其他对象提供这一个实例

单例模式有多种写法

懒汉式:在第一次调用的时候,实例化自己

public class Singleton {
    //懒汉写法

    private static Singleton singleton;
    private Singleton(){

    }
    //线程不安全的写法
   /* public static Singleton getInstance(){
        if(singleton==null){
            Singleton singleton = new Singleton();
        }
        return singleton;
    }*/
   //线程安全的写法
    public static synchronized Singleton getInstance(){
        if(singleton==null){
            Singleton singleton = new Singleton();
        }
        return singleton;
    }

}

  

饿汉式:对象创建的时候就被实例化,

public class SingleTonE {
    private static SingleTonE single = new SingleTonE();
    private SingleTonE(){

    }
    public static SingleTonE getInstance(){
        return single;
    }
}  

 

  饿汉式在类创建的同时就已经创建好一个静态的对象供系统使用,以后不再改变,所以是线程安全的。

静态内部类写法

public class Singleton {

    private static class LazyHolder{
        private static final Singleton INSTANCE = new Singleton();
    }
    private Singleton(){ }
    public static final Singleton getInstance(){
        return LazyHolder.INSTANCE;
    }

}

 双重检查锁定

public class Singleton {  
   private volatile static Singleton singleton;  
   private Singleton (){}  
   public static Singleton getSingleton() {  
   if (singleton == null) {  
       synchronized (Singleton.class) {  
       if (singleton == null) {  
           singleton = new Singleton();  
       }  
       }  
   }  
   return singleton;  
   }  
}

  单例参考:https://blog.csdn.net/jason0539/article/details/23297037

   

2.观察者模式

3.工厂模式

4.代理模式

5.策略模式

6.模板方法模式

7.装饰者模式

8.适配器模式

9.生产者消费者模式

设计模式

原文:https://www.cnblogs.com/ghwq/p/12814246.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!