创建型---单实例 Singleton

  • 代码:
 1 package com.design;
 2
 3 /**
 4  * 测试类
 5  * @author Administrator
 6  *
 7  */
 8 public class Test {
 9     /**
10      * 主函数
11      * @param args
12      */
13     public static void main(String[] args) {
14         Singleton first_inst = Singleton.getInstance();
15         first_inst.setString("8288282");
16
17         Singleton sencond_inst = Singleton.getInstance();
18         System.out.println("sencond_inst : " + sencond_inst.getString());
19         sencond_inst.setString("我是单实例");
20
21         Singleton third_inst = Singleton.getInstance();
22         System.out.println("third_inst : " + third_inst.getString());
23     }
24 }
25
26 /**
27  * 单实例
28  * @author Administrator
29  *
30  */
31 class Singleton
32 {
33     /**
34      * 获取实例
35      * @return
36      */
37     public static Singleton getInstance()
38     {
39         return myInst;
40     }
41
42     /**
43      * 获取string
44      * @return
45      */
46     public String getString()
47     {
48         return str;
49     }
50
51     /**
52      * 设置string
53      * @param str
54      */
55     public void setString(String str)
56     {
57         this.str = str;
58     }
59
60     /**
61      * 创建实例
62      */
63     private static Singleton myInst = new Singleton();
64
65     /**
66      * 测试代码
67      */
68     private String str;
69
70     /**
71      * 私有化构造函数
72      */
73     private Singleton()
74     {
75         str = "";
76     }
77 }
  • 结果

sencond_inst : 8288282
third_inst : 我是单实例

时间: 2024-08-28 10:51:17

创建型---单实例 Singleton的相关文章

深入浅出单实例Singleton设计模式

单实例Singleton设计模式可能是被讨论和使用的最广泛的一个设计模式了,这可能也是面试中问得最多的一个设计模式了.这个设计模式主要目的是想在整个系统中只能出现一个类的实例.这样做当然是有必然的,比如你的软件的全局配置信息,或者是一个Factory,或是一个主控类,等等.你希望这个类在整个系统中只能出现一个实例.当然,作为一个技术负责人的你,你当然有权利通过使用非技术的手段来达到你的目的.比如:你在团队内部明文规定,“XX类只能有一个全局实例,如果某人使用两次以上,那么该人将被处于2000元的

"围观"设计模式(7)--创建型之单例模式(Singleton Pattern)

单例模式,也叫单子模式,是一种常用的软件设计模式.在应用这个模式时,单例对象的类必须保证只有一个实例存在.许多时候整个系统只需要拥有一个的全局对象,这样有利于我们协调系统整体的行为.比如在某个服务器程序中,该服务器的配置信息存放在一个文件中,这些配置数据由一个单例对象统一读取,然后服务进程中的其他对象再通过这个单例对象获取这些配置信息.这种方式简化了在复杂环境下的配置管理.----维基百科(WIKIPEDIA) 个人的理解: 单例模式概念比较简单,他的目的就是只允许出现一个该类的实例,经常在JD

设计模式理解(二)创建型——单例、原型

设计模式理解(二)单例(Singleton)与原型(Prototype) 为什么一起写,因为懒.... 单例,就是用了面向对象语言的一些奇技淫巧,把构造函数私有了,然后用一个自身类型的静态指针作为全局唯一的实例的引用.碰到并发之类就呵呵了. 这么简单都能画个UML图,还煞有介事似的,我晕. -----------------------   分割线   ------------------------ 原型(Prototype) 我理解就是给一个类糊弄个cloneable之类的接口,让它自己决定

c++ 创建型模式-单例模式(Singleton)

1) 意图: 保证一个类仅有一个实例,并且提供一个访问它的全局访问点 2) 结构: 其中: Singleton提供一个instance操作,这是其他客户访问该类的唯一实例. 保证唯一实例有以下操作: 构造函数和析构函数不对外开放 声明一个对外公开的静态函数作为访问该类的唯一接口 单例函数中声明一个静态的类指针,且做好锁保护 3) 适用性: 当类只能有一个实例而且客户可以从一个众所周知的访问点访问它时 当这个唯一实例应该是通过子类化可扩展的,并且客户无须更改代码就能使用一个扩展的实例时 4) 举例

HttpSolrServer-采用静态工厂方法,创建HttpSolrServer单实例

HttpSolrServer线程安全,如果使用下面构造器,必须对所有的请求重用相同的实例.如果实例在运行中创建的,它可能会导致连接泄漏.推荐的做法就是保持每个solr服务url的HttpSolrServer的静态实例,所有的请求都共享这个实例.参考https://issues.apache.org/jira/browse/SOLR-861查看更多细节.1.创建配置文件solr-config.properties: cores=ac,jd base_url=http://127.0.0.a:131

"围观"设计模式(29)--创建型设计模式总结(单例、工厂、原型、创建者)

设计模式源码下载地址 设计模式源码下载地址 1  单例模式 单例模式,也叫单子模式,是一种常用的软件设计模式.在应用这个模式时,单例对象的类必须保证只有一个实例存在.许多时候整个系统只需要拥有一个的全局对象,这样有利于我们协调系统整体的行为.比如在某个服务器程序中,该服务器的配置信息存放在一个文件中,这些配置数据由一个单例对象统一读取,然后服务进程中的其他对象再通过这个单例对象获取这些配置信息.这种方式简化了在复杂环境下的配置管理.----维基百科(WIKIPEDIA) 个人的理解: 单例模式概

单件模式(Singleton创建型)c#简单例子

单件(Singleton创建型模式)c#简单例子 需要生成一个实例时,可采用单件模式 例子中只可生成一个玩家,并对玩家进行测试.单线程例子如下: namespace singletonpattern { public partial class SingletonForm : Form { public SingletonForm() { InitializeComponent(); } private void btnDisplay_Click(object sender, EventArgs

第一式、单例模式-Singleton模式(创建型)

一.简介 单例模式主要用的作用是用于保证程序运行中某个类只有一个实例,并提供一个全局入口点.单例模式(Singleton)为GOF阐述的标准24种设计模式中最简单的一个.但随着时间推移,GOF所阐述的单例实现已不能完全满足实际应用. "ensure a class has only one instance, and provide a global point of access to it" 二.动机(应用场景) 几乎在每个应用程序中,都需要有一个从中进行全局访问和维护某种类型数据

设计模式(一)单例模式Singleton—创建型

SINGLETON(单例模式)-对象创建型模式 单例其实就是唯一实例的意思,也就是说一个类只能有一个实例.开发人员都知道,在Java中,只要new一个类,就会创建这个类的实例,如果把这个类new多次,就会创建这个类的多个实例.有时候如果在程序运行时,不管new多少次,只需要这个类的一个实例,如日志记录中的管理类,要怎么处理呢?这是就需要用到单例模式. 1. 问题 那么怎样来确保一个特殊类的实例是独一无二的(它是这个类的唯一实例),并且这个实例易于被访问呢? 2. 解决方案 1)全局变量:一个全局