前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >java单例模式

java单例模式

作者头像
用户3030674
发布2018-09-14 14:53:53
5330
发布2018-09-14 14:53:53
举报

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

代码语言:javascript
复制
 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,可以实现不创建对象,就能调用其中的方法。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2014-12-20 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档