提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
前几天学习了Java单例设计模式中的两种,饿汉式和懒汉式。
提示:以下是本篇文章正文内容,下面案例可供参考
一、单例设计模式是什么?
所谓的单例设计模式,就是采取一定的方法保证在整个软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法。
有两种方式:懒汉式和饿汉式。
饿汉式:1.构造器私有化
2.类的内部创建对象
3.向外部暴露一个公共的静态方法,用于获取内部已经创建好的对象。
懒汉式:1.构造器私有化
2.类的内部创建对象的引用,初始化为null。
3.向外部暴露一个公共的静态方法,在方法的内部判断是否创建对象。
二、单例设计模式的两种方式
1.饿汉式
代码如下(示例):
class instance {
private String name;
public static instance i = new instance("pang");
private instance(String name) {
this.name = name;
}
public static instance i(){
return i;
}
}
2.懒汉式
代码如下(示例):
class cat{
private String name;
private static cat cat ; //此时的cat是null
private cat(String name) {
this.name = name;
}
public static cat c(){
if(cat == null){
cat = new cat("pang");
}
return cat;
}
}
总结
一定会有小伙伴问为什么类内部创建的对象,对象的引用还有方法都是静态的呢?因为我们对构造器进行了私有化,外部无法创建对象,所以普通方法无法调用,因此只能创建静态方法,通过类名来直接调用。又因为静态方法中只能调用,返回静态成员,所以内部创建的对象的对象的引用只能是静态的。