设计模式

单例模式

一个应用程序中,某个类的实例对象只有一个,你没有办法去new,因为构造器是被private修饰的,一般通过getInstance()的方法来获取它们的实例。

getInstance()的返回值是一个对象的引用,并不是一个新的实例。

双重校验锁

 1public class Singleton{
 2  private volatile static Singleton singleton;
 3  private Singleton(){}
 4  public static Singleton getSingleton(){
 5  	if(singleton == null){
 6       synchronized(Singleton.class){
 7         if(singleton==null){
 8           singleton = new singleton;
 9         }
10       }
11    }     
12  }
13}

观察者模式

对象间一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。

https://mp.weixin.qq.com/s/sdj9DcnZZNRiWssgygiTTw

装饰者模式

对已有的业务逻辑进一步的封装,使其增加额外的功能,如Java中的IO流就使用了装饰者模式,用户在使用的时候,可以任意组装,达到自己想要的效果。

适配器模式

工厂模式

##代理模式