Сегодня 26 ноября, вторник ГлавнаяНовостиО проектеЛичный кабинетПомощьКонтакты Сделать стартовойКарта сайтаНаписать администрации
Поиск по сайту
 
Ваше мнение
Какой рейтинг вас больше интересует?
 
 
 
 
 
Проголосовало: 7276
Кнопка
BlogRider.ru - Каталог блогов Рунета
получить код
С юмором по жизни! /Вячеслав Конашков/ Все люди как люди, а я Бо
С юмором по жизни! /Вячеслав Конашков/ Все люди как люди, а я Бо
Голосов: 1
Адрес блога: http://sundr0p.livejournal.com/
Добавлен: 2010-01-05 03:20:16 блограйдером alessandro1
 

PHP :: True Singleton

2011-06-14 13:39:31 (читать в оригинале)

Глянув на проект, я первым делом охудивился от количества внутренних Singleton-ов.

С этим нужно что-то делать, подумал я. Благо, версия PHP на сервере 5.3.0, а значит нам доступно позднее связывание (late static bindings).

<?php
    
// $Id:$

    /**
     * Pattren Singleton
     */
    
class Singleton
    
{
        
/**
         * Массив инстансов разных классов (по одному инстансу на класс)
         */
        
protected static $instance = array();

        
/**
         * Использование не допустимо
         */
        
private function __construct()
        {;}

        
/**
         * Использование не допустимо
         */
        
final private function __clone()
        {;}

        
/**
         * Получить единственный экземпляр объекта
         * @return Singleton
         */
        
public static function &getInstance()
        {
            
$class_name get_called_class();
            if (!isset(
self::$instance[$class_name])) {
                
self::$instance[$class_name] = new $class_name();
            }
            return 
self::$instance[$class_name];
        }
    }

Короче, вот такая простая идейка.

Тэги: design, pattern, php

 


Самый-самый блог
Блогер ЖЖ все стерпит
ЖЖ все стерпит
по сумме баллов (758) в категории «Истории»
Изменения рейтинга
Категория «Люди»
Взлеты Топ 5
Падения Топ 5


Загрузка...Загрузка...
BlogRider.ru не имеет отношения к публикуемым в записях блогов материалам. Все записи
взяты из открытых общедоступных источников и являются собственностью их авторов.