单例设计模式
单例模式就是解决不管创建了多少次对象,始终得到的都是同一个对象,并且提供一种可以访问这个对象的方式,可以直接访问,不需要实例化该类的对象.
单例类的特点:
单例类的作用
单例模式主要为了保证在java应用程序中,一个类只有一个实例存在
注意: 以下这两种单例模式只适合小并发的系统, 一旦到了多线程,高并发的场景,以下逻辑就会被全部推翻打乱,你就要升维了,就要学习高并发了
懒汉式单例模式
懒汉式: 类加载时不会创建该单实例对象,首次使用该对象时才会创建
class Flower {
private static Flower flower = null;
//构造方法私有化,不允许在类外部创建对象
private Flower() {
}
//提供一个公共的访问方式,让外界可以获取到该类的对象
public static Flower getFlower() {
//如果instance为null,表明还没有创建该类的对象,进行创建
if (flower == null) {
flower = new Flower();
}
//如果不为null,表明已经创建过该类的对象,根据单例类只能创建一个对象的特点,因此直接返回flower
return flower;
}
}
//使用的时候创建对象
饿汉式单例模式
//一开始就把创建对象创建好
class Flower {
//在类中创建本类对象
private static Flower flower = nwe Flower();
//构造方法私有化,不允许在类外部创建对象
private Flower() {
}
//提供一个公共的访问方式,让外界可以获取该类对象,static是因为外界不需要创建对象,直接用类访问
public static Flower getFlower() {
return flower;
}
}
public class Test{
public static void main(String[] args){
//创建Flower类的对象 这个时候就无法用new创建了,因为Flower的构造方式是私有的
Flower f1=Flower.getFlower();
Flower f2=Flower.getFlower();
判断两个对象是不是同一个
System.out.println(f1 == f2)
}
}
原文地址:https://blog.csdn.net/long1_1/article/details/134617585
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_3148.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。