设计模式1-单例模式
设计模式
设计模式本质上就是一种被广泛认可的、可复用的编程思想和经验总结,它提供了解决特定问题的“最佳实践”模板。(就是众多程序员的经验、总结出来的一套模版或者是思想)
单例模式
定义
确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例,避免资源浪费。
场景
● api调用需要写appkey和appSecret的配置类
● 日志系统中的日志类,日志的写入(IO)
● 数据库连接
● 需要定义大量的静态常量和静态方法(如枚举类或者常量类)
● 应用程序的上下文缓存信息APPContext
代码
class Singleton {//懒汉式private static Singleton instance = null;//禁止外部private Singleton(){}//懒汉式1 线程不安全模式public static Singleton getInstance_ThreadNotProtect(){if(instance == null){instance = new Singleton();}return instance;}//懒汉式2 线程安全public static synchronized Singleton getInstance_ThreadProtect(){if(instance == null){instance = new Singleton();}return instance;}//饿汉式//优点:实现简单,线程安全。//缺点:不是懒加载,如果这个实例很大且一直没被用到,会造成内存浪费。//为什么会造成内存浪费:这行代码在类初始化时执行,如果没有在后续使用那么这个就造成了无法回收private static Singleton singleton = new Singleton();//public static Singleton getSingleton(){return singleton;}
}
单例模式代码