单例模式
确保某一个类只有一个实例。因此不能new 对象。
class Single
{
private static $instance;//保存类唯一实例的静态变量。,静态方法不能调用非静态变量,因为非静态变量属于对象,所以这里需要定义为 static。
//设置私有,外部不可new,外部每new一次,就是一个不同的对象
private function __construct()
{
}
private function __clone()
{
}
//提供一个可供外部访问的公共静态方FA , 因为不能 new 对象,所以只能使用静态方法
public static function instance()
{
if(!self::$instance instanceof self)
{
self::$instance = new self();
}
return self::$instance;
}
public function get()
{
}
}
Single::instance()->get();
工厂模式
根据不同的类型new不同的对象,例如活动里的抽卡
switch(type)
{
case 1:
return new class1()
case 2:
return new class2()
}
注册模式
已经创建好的对象,挂在到某个全局可以使用的数组上,在需要使用的时候,直接从该数组上获取即可
$activityLogicList = &self::$activityLogicList;
if( !isset($activityLogicList[$type]) )
{
$activityLogicList[$type] = new $logic($type);
}
$logicObj = $activityLogicList[$type];
if( !($logicObj instanceof BaseActivityLogic) )
{
continue;
}
$logicObj->addActivityConfig($value);