/**
单例设计模式
1、构造方法私有化;
2、声明一个静态的本类对象;
3、给外部提供一个静态方法来获取本类的对象实例
1、饿汉式:在类被加载后,对象就被创建,到程序结束后释放(占用内存的时间长,提高效率)
2、懒汉式:在第一次调用getInstance方法时,对象就被创建,到程序结束后释放(占用内存的时间短,效率低【懒加载或延迟加载】,在多线程访问时会有安全问题)
单例设计模式的目的:为了节省重复创建对象所带来的内存消耗,从而来提高效率
能不能使用构造方法私有化+静态方法来替代单例?
*/
public class Test21 {
public static void main(String[] args) {
Singleton1 s1 = Singleton1.getInstance();
s1.print();
Singleton2 s2 = Singleton2.getInstance();
s2.print();
Tools.print1();
}
}
//饿汉式 单例
class Singleton1{
private Singleton1(){} //构造方法私有化
private static Singleton1 s = new Singleton1(); //声明一个静态本类对象
public static Singleton1 getInstance(){ //给外部提供一个静态方法来获取本类的对象实例
return s;
}
public void print(){
System.out.println("我是饿汉式");
}
}
//懒汉式 单例
class Singleton2{
private Singleton2(){}
private static Singleton2 s;
public static Singleton2 getInstance(){
if (s == null){
s = new Singleton2();
}
return s;
}
public void print(){
System.out.println("我是懒汉式");
}
}
//构造方法私有化+静态方法替换单实例
class Tools{
private Tools(){}
public static void print1(){
System.out.println("我是:构造方法私有化+静态方法");
}
public static void print2(){
}
}
单例设计模式
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 在iOS中有很多的设计模式,有一本书《Elements of Reusable Object-Oriented S...
- 面向对象思想设计原则 在实际的开发中,我们要想更深入的了解面向对象思想,就必须熟悉前人总结过的面向对象的思想的设计...
- 单例模式4:多线程二(双重锁定)这种双重锁定考虑了线程安全,是正规写法 游戏常用设计模式之单例设计模式的写法大概常...
- 什么是单例一个类只允许有一个实例,在整个程序中需要多次使用,共享同一份资源的时候,就可以创建单例,一般封装成工具类...
- @陈美君|3631|C位班班 https://www.jianshu.com/p/37a067463a7a?fro...