Re: [請益] 物件中的物件表示法
//介面
interface IDemoRepository
{
public function doSomeThing();
}
//用工廠模式呼叫singleton實例
class Demo
{
public static function api()
{
return DemoRepository::getInstance();
}
//實做
class DemoRepository implements IDemoRepository
{
private static $instance;
//factory setting
//這邊有用到JAVA的雙重鎖定檢查
//另外還加了synchronized的方式(不過不知道php有沒有效減少資源)
public static function getInstance()
{
if (self::$instance === NULL)
{
//TODO sem muilt process set
$SEMKey = "99999";
//TODO sem muilt process start
sem_acquire($seg);
if (self::$instance === NULL)
{
self::$instance = new self;
}
sem_release($seg);
}
return self::$instance;
}
public function doSomeThing()
{
//實作 ...
}
}
//最後使用它們
Demo::api()->doSomeThing()
//好處在,只會存在一個實例
//另外當有需要時,由工廠介面模式產出
//你想要包幾百個物件夾物件都沒差,自己新增
//無論何時何地,要用就call它即可
補充:想到比較笨的方法...
原PO將上述方法再帶Class進去時
再寫個__construct,並用get_class()去檢查你導入的任何物件
比對是否符合你需要的
這樣應該就完美了(乾脆用JAVA啊,搞肛~)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 111.249.133.231
※ 編輯: dlikeayu 來自: 111.249.133.231 (03/21 04:05)
※ 編輯: dlikeayu 來自: 111.249.133.231 (03/21 04:16)
討論串 (同標題文章)
PHP 近期熱門文章
PTT數位生活區 即時熱門文章