java中的单例设计模式
关于设计模式,这其实是单独存在的东西,它不属于java,但是在java中使用较多,所以今天我就给大家介绍下单例设计模式中的饿汉和懒汉这俩朴素的打工人。
首先我先说明下单例设计模式是啥(如果不想了解,可以直接划下去看饿汉和懒汉):类的单例设计模式就是采用一定的方法保证在整个软件系统中,对某个类只能存在一个对象实例。(不懂也没关系,会用就好)
一.饿汉式
饿汉式:可以理解为饿的不行了,就提前把吃饭工具准备好(new对象),再进行“吃”的操作。
用代码说话叭:
1class Family{ 2 3 4 private int number; 5 private String name; 6 private Family(){ 7 8 9 } //构造器私有化 10 private static Family Instance=new Family(); 11 //内部创建类的对象 12 public static Family getInstance(){ 13 14 15 return Instance; 16 } 17 //提供公共的静态方法,且返回对象。 18} 19public class Test3 { 20 21 22 public static void main(String[] args) { 23 24 25 Family family1=Family.getInstance(); 26 Family family2=Family.getInstance(); 27 } 28}
二.懒汉式
懒汉式:可以理解这人特懒,他只是洗下碗但是不准备,啥时候吃饭啥时候弄吃饭工具(new对象)。
用代码说话叭:
1class lazy { 2 3 4 private lazy(){ 5 6 7 } 8 private static lazy Instance = null; 9 //声明当前对象没有初始化值 10 public static lazy getInstance(){ 11 12 13 if (Instance==null){ 14 15 16 Instance=new lazy(); 17 //需要再造对象,不要就不new对象了 18 } 19 return Instance; 20 } 21} 22public class Test32 { 23 24 25 public static void main(String[] args) { 26 27 28 lazy lazy1=lazy.getInstance(); 29 } 30}
三.饿汉和懒汉有啥不同
对于饿汉式:
优点:线程贼安全
缺点:对象加载时间过长
对于懒汉式:
优点:延迟对象的创建,更快
缺点:多线程安全贼低,但是可以通过优化使其可用。