单例模式

 下面是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 args
52 
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  

 

相关文章:

  • 2021-12-12
  • 2021-04-29
  • 2021-12-29
  • 2022-12-23
  • 2022-02-11
  • 2021-07-27
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-12-06
  • 2021-10-02
  • 2021-06-15
  • 2022-12-23
  • 2021-07-21
  • 2022-01-10
相关资源
相似解决方案