Я когда-то читал, что статические классы являются очень трудными и даже невозможными отладить. Действительно ли это верно и почему?

Я когда-то читал, что статические классы являются очень трудными и даже невозможными отладить. Действительно ли это верно и почему?

Если пример помог бы, вот a PHP класс, который я использую для доступа к базе данных (я не думаю, что это - PHP-конкретный-вопрос, хотя):

<?php

class DB
{
    private static $instance;

    private function __construct() { }

    public static function getInstance()
    {
        if(!self::$instance)
        {
            self::$instance = new PDO('mysql:host=' . DB_HOST . ';dbname=' . DB_NAME . ';', DB_USER, DB_PASS);
        }
        return self::$instance;
    }

    public static function getPreparedStatement($query)
    {
        $db = self::getInstance();
        return $db->prepare($query);
    }

    public static function query($query)
    {
        $stmt = self::getPreparedStatement($query);
        $stmt->execute();
    }

    public static function getResult($query)
    {
        $stmt = self::getPreparedStatement($query);
        $stmt->execute();
        return $stmt;
    }

    public static function getSingleRow($query)
    {
        $stmt = self::getPreparedStatement($query);
        $stmt->execute();
        return $stmt->fetch();
    }

    public static function getMultipleRows($query)
    {
        $stmt = self::getPreparedStatement($query);
        $stmt->execute();
        return $stmt->fetchAll();
    }
}

?>
5
задан Mike Moore 6 August 2010 в 13:43
поделиться