美文网首页
PHP单例模式之抽象类

PHP单例模式之抽象类

作者: Rohn | 来源:发表于2016-09-20 18:06 被阅读103次
  • 构造函数一定要声明为 private
  • $_instance一定要声明为 private static
  • __clone 一定要定义且private,防止clone;
  • getInstance()一定要声明为public static;
  • 抽象类中的抽象方法,子类必须重写testFunction()
abstract class SingletonBase
{

    public $table = 'bar';
    private static $_instance;

    private function __construct()
    {
        echo 'this is the private parent construct';
    }

    public static function getInstance($className)
    {
        if (!self::$_instance instanceof self) {
            self::$_instance = new $className();
        }
        self::$_instance->testFunction();
        return self::$_instance;
    }

    abstract function testFunction();

    private function __clone()
    {
        trigger_error('Clone is not allow!', E_USER_ERROR);
    }
}

class SingletonFoo extends SingletonBase
{

    public $table = 'foo';

    public static function getInstance()
    {
        return parent::getInstance(__CLASS__);
    }

    public function testFunction()
    {
        echo 'test function</p>';
    }
}

$st = SingletonFoo::getInstance();

相关文章

  • PHP单例模式之抽象类

    构造函数一定要声明为 private; $_instance一定要声明为 private static; __cl...

  • pattern设计模式

  • 2018-04-08php实战设计模式

    一、单例模式 单例模式是最经典的设计模式之一,到底什么是单例?单例模式适用场景是什么?单例模式如何设计?php中单...

  • Java23种设计模式之「单例模式」

    单例模式 之 holder 模式 (推荐) 单例模式 之 饱汉模式(懒汉模式) 单例模式 之 双重锁检查 (Dou...

  • Java基础(3)——抽象类和单例设计模式

    本节内容1.单例设计模式2.抽象类实现模板设计模式3.抽象类实现造房子 一、单例设计模式1.设计模式:对经常出现的...

  • 单例

    iOS单例模式iOS之单例模式初探iOS单例详解

  • PHP之单例模式

    单例模式:也叫单态模式(好像各个地方都是叫单例!),是一种常用的软件设计模式。这个模式规定单例对象的类必须保证这个...

  • 2018-12-09

    Day06.继承、super、this、final关键字、抽象类 单例模式的概念: 单例模式的意思就是只有一个实例...

  • 设计模式之单例模式详解

    设计模式之单例模式详解 单例模式写法大全,也许有你不知道的写法 导航 引言 什么是单例? 单例模式作用 单例模式的...

  • PHP的单例模式

    php的单例模式和java单例模式的比较 PHP语言是一种解释型的脚本语言,这种运行机制使得每个PHP页面被解释执...

网友评论

      本文标题:PHP单例模式之抽象类

      本文链接:https://www.haomeiwen.com/subject/ykuoettx.html