设计模式-----模板方法模式
设计模式-----适配器模式
设计模式-----建造者模式
单例模式:
主要作用是保证在Java应用程序中,一个类Class只有一个实例存在。
单例模式能够保证一个类仅有唯一的实例,并提供一个全局访问点。
主要有以下特点:
1、确保自己只有一个实例。
2、必须自己创建自己的实例。
3、必须为其他对象提供唯一的实例。
懒汉式和饿汉式的区别:
1、恶汉模式的特点是加载类时会比较慢,但运行时获取对象的速度比较快。
2、懒汉模式的特点时加载类时会比较快,但运行时获取对象的速度相对慢。
3、恶汉模式时线程安全的,懒汉模式线程不安全。可以再方法中快使用关键字synchronized解决。
懒汉式:懒得创建,用的时候再创建
public class Singleton {
//私有实例,只能内部调用
private static Singleton instance=null;
//私有构造方法,防止外部创建实例 必须
private Singleton(){
}
/**
* 提供一个静态方法,供外部访问 返回当前实例
*
* 懒汉模式是线程不安全的,通过synchronized关键字解决
* 该关键字作用为当多个线程同时访问该方法的时候,必须等一个线程访问完,
* 才能进行访问,这就预防了多个线程同时访问而创建多个实例。
*/
public static synchronized Singleton getInstance(){
if(instance==null){
instance=new Singleton();
}
return instance;
}
}
恶汉式:管你用不用,先搞一个再说
public class Singleto2 {
//私有构造方法,防止外部创建实例 必须
private Singleto2(){
}
//在自己内部定义自己的一个实例,只供内部调用
//final修饰,确保了该实例 不允许修改。
private static final Singleto2 instance = new Singleto2();
//提供了供外部访问的静态方法,可以直接访问
public static Singleto2 getInstance(){
return instance;
}
}