單例模式的簡單demo

//C++版本(餓漢模式)

#include <iostream>

using namespace std;
class R
{
static R* instance;
R(){}
public:
static R* GetInstance()
{
return instance;
}


};
R* R::instance = new R;
/*
1.構造函數放在非public控制權限下
2.保證對象始終值存在一個(讓對象始終存在於靜態區)
3.對外部提供一個訪問的接口
*/


int main()
{
R *a = R::GetInstance();
R *b = R::GetInstance();


if (a == b)
{
cout << "相等" << endl;
}
else
{
cout << "不相等" << endl;
}


return 0;

}

//php版本

<?php
class R
{
static $ins=null;
private function __construct()
{


}
static public function getins()
{
      if( ! (self::$ins instanceof self)){
            self::$ins= new self();
       }
      return self::$ins;
    }


}


$a=R::getins();
$b=R::getins();


if($a==$b)
{
echo "相等";
}
else
{
echo "不相等";
}
?>


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章