Re: [請益] 物件中的物件表示法

看板PHP作者 (太陽拳vs野球拳)時間12年前 (2013/03/21 04:03), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串4/5 (看更多)
//介面 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)
文章代碼(AID): #1HIXOCrB (PHP)
文章代碼(AID): #1HIXOCrB (PHP)