php中的单例模式

来源:互联网 发布:oracle sql修改字段名 编辑:程序博客网 时间:2024/06/04 18:06

如果我们将构造函数定义成了私有方法,则无法直接实例化对象,因为私有方法不允许在外部调用,这时候我们往往通过静态方法来实现实例化,在设计模式中会经常使用这样的方法来控制对象的生成,著名的单例模式就是只允许存在一个全局唯一的对象。

<?phpclass Car {    private function __construct() {        echo 'object create <br>';    }    private static $_object = 0;    public static function getInstance()     {        if (self::$_object<=2)         {            self::$_object +=1 ;            return new Car(); //内部方法可以调用私有方法,因此这里可以创建对象        }            }}//$car = new Car(); //这里不允许直接实例化对象$car1 = Car::getInstance(); //通过静态方法来获得一个实例$car2=Car::getInstance();$car3=Car::getInstance();$car4=Car::getInstance();?>

这里使用变量$_object来控制生成的实例的数量,上面的程序中只会生成三个实例,因此输出三行object create

object create object create object create 


0 0
原创粉丝点击