Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Паттерны проектирования / 7 сообщений из 7, страница 1 из 1
11.09.2010, 23:13
    #36842090
TWK
TWK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Паттерны проектирования
Посоветовали начать с Singleton.
читаю и вот собственно этот самый паттерн

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
<?php
// PHP5
 class  Logger {
static  private  $instance =  NULL ;

  static  function  getInstance()
  {
     if  ( self ::$instance ==  NULL )
    {
       self ::$instance =  new  Logger();
    }
     return   self ::$instance;
  }

 private   function  __construct()
{
}

 private   function  __clone()
{
}

}

//пусть далее размещены методы необходимые разработчику.
?>

не могу понять его предназначение и что он делает. похоже что это самый простой патерн.
можете пожалуйста объяснить на каком нибудь реальном примере ? а то из этого мало что понятно

автор
Singleton Pattern — один из наиболее известных шаблонов проектирования. Почти в любой объктно-ориентированной программе обычно существует один-два объекта, которые инициализируются в начале, и используются на всем протяжении работы приложения. Таким объектом может быть, logger — объект для ведения log-ов (log в переводе с англ. — журнал). Так в случае с log-ами, нам нет нужды каждый раз создавать объект класса logger, лишь для того, чтобы произвести запись в журнал. Достаточно создать один экземпляр класса, в начале работы программы, и пользоваться им. Такие классы (как например logger) будем называть singleton классами.

Важно отметить, что singleton pattern также решает еще одну наболевшую задачу. Часто бывает так, что мы передаем в функцию (метод) параметр лишь для того, чтоб эта функция передала этот параметр еще дальше. Или же несколько частей программы постоянно нуждаються в «свежей» информации о состоянии объекта, который меняется по ходу работы; тогда снова и снова приходиться передавать объект как параметр. Конечно, если такая ситуация возникает пару раз за всю работу приложения, можно не обращать на это внимания. Но, если один и тот же объект бестолково «футболяется» между всеми модулями и функциями программы, может возникнуть страшная путаница и, как следствие, ошибки. В таких ситуациях следует использовать singleton класс. Вместо того, чтоб передавать по цепочке объект из функции в функцию, singleton pattern обеспечивает возможность, каждой части програмы, получить по ссылке единственный для всей программы объект.
...
Рейтинг: 0 / 0
11.09.2010, 23:34
    #36842100
ScareCrow
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Паттерны проектирования
итить.
иногда нужно чтобы объект был ОДИН всегда. чтобы ресурсы не занимать. вот это и обеспечивает синглтон.
типичный пример - соединение с базой данных.
...
Рейтинг: 0 / 0
11.09.2010, 23:34
    #36842101
ScareCrow
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Паттерны проектирования
...
Рейтинг: 0 / 0
12.09.2010, 00:01
    #36842111
TWK
TWK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Паттерны проектирования
жесть сколько же их О_о
http://en.wikipedia.org/wiki/Design_pattern_(computer_science)

а на какой патерн можно перевести сайт/каталог ? что изучать ?
...
Рейтинг: 0 / 0
12.09.2010, 00:06
    #36842113
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Паттерны проектирования
Начни с MVC
...
Рейтинг: 0 / 0
12.09.2010, 00:55
    #36842133
an0nym
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Паттерны проектирования
TWK,

это не синглтон, а ленивый синглтон. RTFM.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
04.12.2012, 10:52
    #38063875
spendlively
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Паттерны проектирования
В википедии целый раздел по паттернам проектирования с примерами на php! Я разбирался с паттернами тут !
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Паттерны проектирования / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]