一 模式定义
1 某个类只能有一个实例。
2 该类必须自行创建这个实例。
3 该类必须自行向整个系统提供这个实例。
二单例模式举例
1 模式分析
2 使用同步线程安全创建单例对象- package com.demo.singleton;
-
- public class Singleton {
-
- // 类共享实例对象 实例化
- private static Singleton singleton = null;
-
- // 私有构造方法
- private Singleton() {
- System.out.println("-- this is Singleton!!!");
- }
-
- // 获得单例方法
- public synchronized static Singleton getInstance() {
- // 直接返回共享对象
- if(singleton == null)
- {
- singleton = new Singleton();
- }
- return singleton;
- }
-
- }
3 创建一个类全局对象实例作为单例对象
- package com.demo.singleton;
-
- /**
- * 单例设计模式
- *
- * @author
- *
- */
- public class Singleton {
-
- // 类共享实例对象 实例化
- private static Singleton singleton = new Singleton();
-
- // 私有构造方法
- private Singleton() {
- System.out.println("-- this is Singleton!!!");
- }
-
- // 获得单例方法
- public static Singleton getInstance() {
- // 直接返回共享对象
- return singleton;
- }
-
- }
4 单例客户端代码
- package com.demo;
-
- import com.demo.singleton.Singleton;
-
- /**
- * 客户端应用程序
- *
- * @author
- *
- */
- public class Client {
-
- /**
- * @param args
- */
- public static void main(String[] args) {
- // 首先 检验是否能用new操作符创建Singleton对象实例
- Singleton singleton = Singleton.getInstance();
- // 在此获得Singleton对象实例
- Singleton singleton2 = Singleton.getInstance();
- // 比较两个对象是否是同一个对象实例
- if (singleton == singleton2) {
- System.out.println("--这是同一个对象!");
- } else {
- System.out.println("--这是不同的对象!");
- }
- }
- }
运行结果
-- this is Singleton!!!
--这是同一个对象!
三设计模式
1 确保某个类只有一个实例。
2 自行实例化并向整个系统提供这个实例。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。