java单例模式

单例设计模式:解决一个类在内存中只存在一个对象  多用于环境变量设置等  单例模式的要求:1.只能有一个对象,禁止其他程序建立该类对象          2.要提供外界对对象的访问方式  解决办法:1.将构造方法私有化,可以禁止其他程序建立该类对象       2.在本类中自定义一个私有对象。注:因为访问方式是静态的,所以对象也要是静态的       3.提供一个public static 的访问方式,以为要通过类名来访问,而不是通过对象来访问  提示:这里的单利模式是很简单的一个举例,需要其他的功能可以添加,例如在student类中,加入这三步,也是一样的。只不过student类只有一个对象了,和平时的应用不太符合。

 1 public class singleModel1 {
 2     //定义私有构造方法
 3     private singleModel1(){}
 4     //定义私有对象
 5     private static singleModel1 s=new singleModel1();
 6     //定义对象获取方法
 7     public static singleModel1 getInstance(){
 8         return s;
 9     }
10 }
11 /*
12  * 还有一种单例模式如下,但是不建议大家用下面的方法,因为涉及到了线程安全问题。在这里只是给大家提一下
13  * */
14 class singleModel2 {
15     //定义私有构造方法
16     private singleModel2(){}
17     //定义私有对象变量,但是并不赋值
18     private static singleModel2 s=null;
19     //定义对象获取方法并赋值
20     public static singleModel2 getInstance(){
21         if(s==null){
22             s=new singleModel2();
23         }
24         return s;
25     }
26 }

其实单例模式本质上还是public,private,static关键字的使用。 通过private关键字,禁止了其他类对该类的对象创建,只能通过自己内部进行创建对象 通过static关键字,可以实现了对象在该类在家在过程中就已经实例化。 并且,通过static,可以实现不创建对象,就能调用其中的方法。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏黑泽君的专栏

java基础学习_反射、装饰模式、JDK新特性_day27总结

1002
来自专栏散尽浮华

python-基础案例

范例一: 练习:元素分类 有如下值集合 [11,22,33,44,55,66,77,88,99,90...],将所有大于 66 的值保存至字典的第一个key中,...

2715
来自专栏云霄雨霁

Java--类和对象之基础知识

1583
来自专栏Python

python中__get__,__getattr__,__getattribute__的区别

__get__,__getattr__和__getattribute都是访问属性的方法,但不太相同。  object.__getattr__(self, nam...

1580
来自专栏Java成长之路

四、Java对象的内存布局

上篇博客介绍的对象的创建过程,本文来介绍一下对象的组成结构。 在HotSpot虚拟机中,对象在内存中的布局划分为3个区域:对象头(Header),实例数据(...

2553
来自专栏WD学习记录

牛客网 python (1)

1. python my.py v1 v2 命令运行脚本,通过 from sys import argv如何获得v2的参数值? 

1961
来自专栏决胜机器学习

正则表达式学习笔记

正则表达式学习笔记 (原创内容,转载请注明来源,谢谢) 首先,学习正则表达式,很推荐一篇博客,http://www.cnblogs.com/deerchao...

36412
来自专栏java思维导图

【一分钟知识】try catch finally执行顺序,final finally finalize的区别

final、finally、finalize的区别 final 如果一个类被声明为final,意味着它不能再派生出新的子类,即不能被继承,因此它和abstrac...

3576
来自专栏PHP在线

PHP5 的对象赋值机制介绍

看到PHP设计模式中值对象模式中的例题,对于结果总感到有点疑惑。回头看了下PHP5的对象赋值才真正清楚。 复制代码 代码如下: <?php class Si...

2867
来自专栏Deep learning进阶路

C++随记(三)---动态分配内存问题(2)

C++随记(三)---动态分配内存问题(2)      上一篇博文讲到了使用动态数组时,只要把指针名字当作数组名使用即可,而且指针名可以进行运算,而数组名不...

2160

扫码关注云+社区

领取腾讯云代金券