设计模式

总共有23种设计模式
总体来说设计模式分为三大类:

  • 创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。
  • 结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。
  • 行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。
    企业面试的时候,面试官非常喜欢考单例,而且非常喜欢考手写单例。

什么是单例?单例有那些写法?

单例分类:懒汉式单例、饿汉式单例
单例模式有以下特点:
1、单例类只能有一个实例。
2、单例类必须自己创建自己的唯一实例。
3、单例类必须给所有其他对象提供这一实例。
①懒汉式单例

1.//懒汉式单例类.在第一次调用的时候实例化自己   
2.public class Singleton {  
3.    private Singleton() {}  
4.    private static Singleton single=null;  
5.    //静态工厂方法   
6.    public static Singleton getInstance () {  
7.         if (single == null) {    
8.             single = new Singleton();  
9.         }    
10.        return single;  
11.    }  
12.}

②饿汉式单例

13.//饿汉式单例类.在类初始化时,已经自行实例化   

14.public class Singleton1 {  
15.    private Singleton1() {}  
16.    private static final Singleton1 single = new Singleton1();  
17.    //静态工厂方法   
18.    public static Singleton1 getInstance() {  
19.        return single;  
20.    }  
21.}  

懒汉式与饿汉式区别?

从名字上来说,饿汉和懒汉,
饿汉就是类一旦加载,就把单例初始化完成,保证getInstance的时候,单例是已经存在的了,
而懒汉比较懒,只有当调用getInstance的时候,才回去初始化这个单例。
另外从以下两点再区分以下这两种方式:

你可能感兴趣的:(设计模式)