设计模式:单例模式

一般来说,单例模式仅适用于支持OOP的语言,像phpc++等。但是其思想却可以借鉴到所有的语言。

下面以php为例:

<?php

interface ISingleton
{
    static public function GetInstantce();
    static public function CloseInstance();
}


final class MySQLConnection implements ISingleton
{
    static private $connection;

    private function __construct()
    {
        if (function_exists('mysqli_connect')
        {
            return mysqli_connect('localhost', 'root', '', 'nms', 3306);
        }
        return null;
    }

    final static public function GetInstantce()
    {
        if (! self::$connection instantceof self)
        {
            self::$connection = new self();
        }

        return self::$connection;
    }

    static public function CloseInstance()
    {
        if (self::$connection)
        {
            mysqli_close(self::$connection);
        }
        self::$connection = null;
    }

    private function __clone() {}
    private function __desctruct()
    {
        self::CloseInstance();
    }
}

?>

results matching ""

    No results matching ""