zoukankan      html  css  js  c++  java
  • 单例模式

     1 //单例模式
     2 //目的:为了控制对象的数量(只能够有一个,相当于类的计划生育)
     3 //针对场景给用户在这个场景里只能造出一个对象,不能多个例如DW窗口在一个页面只能开一个窗口
     4 
     5 //类
     6 class Ren
     7 {
     8      public $name;//成员变量 跟名字
     9      //(图2)成员变量用来储存对象
    10      static public $dx;//(如图3)判断这个变量是不是空的
    11      
    12      private function __construct()//private私有的在外界访问不到,也就是不能造对象了
    13      {
    14          
    15      }
    16      //方法
    17      static function DuiXiang()//早对象的方法,返回有个对象
    18      {    
    19          if(empty(self::$dx))//(图3)
    20          {
    21             self::$dx = new Ren();//(这个等于图4)
    22         }
    23         return self::$dx;//这样就能控制有一个对象$dx不能这样写必须用个关键字self::$dx调用
    24          //(图4)return new Ren();//返回的对象
    25      }//现在钓不到,如何让它钓到加静态方法如下用类名钓对象方法(例子1加了return还是实现不了只能造一个出来。解决方案根据封装想到加控制条件)让对象只能造一个出来,在这个大类里再做一个变量用来储存该对象(如图2)将来要放在这个方法里面使用的,应为这个是一个静态方法静态方法只能方静态的所以上面(图2)只能做静态的才能访问
    26      
    27 }
    28 //使用类就要用到Ren类里面的对象方法
    29 $r = Ren::DuiXiang();
    30 $r->name = "张三";//对象里面name赋值如张三。如果在用这个类如(图5)
    31 
    32 $r1 = Ren::DuiXiang();//(图5)也显示张三,如果把$r1值改成李四那么$r也会变李四
    33 $r1->name = "李四";//这个值就会显示李四
    34 
    35 var_dump($r1);//看看r1这个对象是不是使用过的r这个对象
    36 
    37 /*//(例子1)     
    38 $r = Ren::DuiXiang();
    39 var_dump($r);
    40 */
    41      
    42     
    43 
    44 下面的先不看捋顺再看
    45 //$r = new Ren();//构造函数变成私有的,但是这样在外界一个对象都做不了。要解决在这可以造一个对象,那就是做个方法相当于封装
    46 
    47 
    48 //对象
    49 /*$r = new Ren();//new调用构造函数Ren()
    50 $r->name = "张三";
    51 
    52 $r1 = new Ren();
    53 $r1->name = "李四";
    54 */
    55 
    56 
    
    
  • 相关阅读:
    我要好offer之 二叉树大总结
    我要好offer之 字符串相关大总结
    楼层扔鸡蛋问题[转]
    Linux System Programming 学习笔记(十一) 时间
    Linux System Programming 学习笔记(十) 信号
    Linux System Programming 学习笔记(九) 内存管理
    Linux System Programming 学习笔记(八) 文件和目录管理
    Linux System Programming 学习笔记(七) 线程
    Linux System Programming 学习笔记(六) 进程调度
    APUE 学习笔记(十一) 网络IPC:套接字
  • 原文地址:https://www.cnblogs.com/aqxss/p/6182689.html
Copyright © 2011-2022 走看看