作者dlikeayu (太阳拳vs野球拳)
看板PHP
标题Re: [请益] 物件中的物件表示法
时间Thu Mar 21 04:03:21 2013
//介面
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)