博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
单例模式的理解与应用
阅读量:7054 次
发布时间:2019-06-28

本文共 1957 字,大约阅读时间需要 6 分钟。

单例模式

 下面是java中使用单例模式的例子

下面这个构造函数 是单利的关键

 

单例模式用c++实现如下图

简单说就是只能被new一次,其他部分要使用业务逻辑层 只能通过将原来的对象复制

怎么复制?

 

这里的CDALFile是类,pObjFile是类的对象,作为参数传到函数init中,在init函数中对单例模式下的对象进行修改

 

这是c++中的单例 ,这是一种设计模式,

就那业务逻辑层来说, 仅能允许 业务逻辑层对象被实例化一次,简单说就是只能被new一次,

●单例模式中

1 package zzz; 2  3 //单例模式代码 4  5 public class dd { 6  7          public static int iCount = 0;               8  9          static class abc{10 11              public static abc m_a;           12 13              public static abc initabc()14 15              {
//2.自定义函数initabc封装构造函数abc(),使得构造函数只能在16 17 //initabc()里面调用,且通过if语句使得构造函数abc()只能被调用一次18 19 if (m_a == null)20 21       {22 23    m_a = new abc(); 24 25 }26 27 return m_a;28 29 } 30 31 private abc()//1.一个无参的空构造函数,且为private型,保证不为外部随意调用32 33 {} 34 35 /*测试方法:打印m_a的值36 37 public boolean getM_A(){38 39 System.out.println(m_a);40 41 return true;42 43 }44 45 */46 47   } 48 49 /**50 51 * @param args52 53 */54 55 public static void main(String[] args)56 57 {58 59 abc.m_a = null;//构造函数是private或protected时,不能用new方法构造出一个对象,是public时可以60 61 abc.initabc();62 63 64 65 abc test1 = abc.initabc();//调用initabc方法时其实已经跳过abc(),m_a的值是第一次构造时的值66 67 //test1.getM_A();68 69 70 71 abc test2;72 73 test2 = abc.initabc();//调用initabc方法时其实已经跳过abc(),m_a的值是第一次构造时的值74 75 //test2.getM_A(); 76 77 System.out.println("nihao");78 79 }80 81 }82 83

 

转载于:https://www.cnblogs.com/baoxiaofei/p/4277871.html

你可能感兴趣的文章
2015.3.12Arinc424 Tools中SiniArincCls.csParserFile(string sFile)函数正则表达式理解
查看>>
angularjs探秘<三> 控制器controller及angular项目结构
查看>>
列表的常用操作符和BIF
查看>>
opencv里面CV_32FC1家族
查看>>
在VS2015中用C++创建DLL并用C#调用且同时实现对DLL的调试
查看>>
JavaScript操作DOM的那些坑
查看>>
Acdream Path 动态规划
查看>>
手机版开发框架集合
查看>>
Memcache的客户端连接系列(二) Python
查看>>
shell 环境变量
查看>>
安装xampp二三事
查看>>
2019-04-09 SpringBoot+Druid+MyBatis+Atomikos 的多数据源配置
查看>>
分解质因数
查看>>
字符型图片验证码识别完整过程及Python实现
查看>>
js,jquery获取url参数
查看>>
Java基础学习总结(36)——Java注释模板
查看>>
erange.heetian.com 回显任意账号
查看>>
OBJ文件格式简介
查看>>
实验三 有限自动机的构造与识别
查看>>
python的学习笔记之——time模块常用内置函数
查看>>