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

【设计模式】—— 单例模式Singleton

作者头像
用户1154259
发布2018-01-17 17:29:28
4750
发布2018-01-17 17:29:28
举报

  模式意图

  保证类仅有一个实例,并且可以供应用程序全局使用。为了保证这一点,就需要这个类自己创建自己的对象,并且对外有公开的调用方法。

  模式结构

  Singleton 单例类,内部包含一个本身的对象。并且构造方法时私有的。

  使用场景

  当类只有一个实例,而且可以从一个固定的访问点访问它时。

  代码结构

【饿汉模式】通过定义Static 变量,在类加载时,静态变量被初始化。

代码语言:javascript
复制
 1 package com.xingoo.eagerSingleton;
 2 class Singleton{
 3     private static final Singleton singleton = new Singleton();
 4     /**
 5      * 私有构造函数
 6      */
 7     private Singleton(){
 8         
 9     }
10     /**
11      * 获得实例
12      * @return
13      */
14     public static Singleton getInstance(){
15         return singleton;
16     }
17 }
18 public class test {
19     public static void main(String[] args){
20         Singleton.getInstance();
21     }
22 }

【懒汉模式】

代码语言:javascript
复制
 1 package com.xingoo.lazySingleton;
 2 class Singleton{
 3     private static Singleton singleton = null;
 4     
 5     private Singleton(){
 6         
 7     }
 8     /**
 9      * 同步方式,当需要实例的才去创建
10      * @return
11      */
12     public static synchronized Singleton getInstatnce(){
13         if(singleton == null){
14             singleton = new Singleton();
15         }
16         return singleton;
17     }
18 }
19 public class test {
20     public static void main(String[] args){
21         Singleton.getInstatnce();
22     }
23 }
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2014-10-26 ,如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  •   模式意图
  •   模式结构
  •   使用场景
  •   代码结构
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档