STDLIB

Паттерн программирования Singleton

октября 3, 2011  |  Published in Ruby, STDLIB

Singleton (одиночка) — паттерн программирования позволяющий создавать такие классы, которые могут иметь только один экземпляр. Можно подумать, что это глупый паттерн, ибо если вам нужен один экземпляр (копия) класса, то вы просто создаете его и не создаете больше экземляров. Я тоже так думал и даже пытался найти обоснование тому, почему этот паттерн существует. Я понимал, что все эти паттерны были придуманы людьми куда-более умными, образованными и опытными чем я, и кажащаяся бесполезность pattern Singleton — это всего-лишь мое невегласие. Вот к чему я пришел:

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

Честно признаться в Ruby можно хорошо обходиться без использования Singleton, однако, вам может быть полезно и интересно знать о нем, просто для общего развития или для применения в других языках программирований.
Read the rest of this entry »

Tags: , , ,

Паттерн программирования Observer в Ruby

октября 2, 2011  |  Published in Ruby, STDLIB

Патерн Observer относится к семейству publish/subscribe паттернов программирования. Observer предоставляет механизм для уведомления одним объектом другого при изменении собственного состояния. Объект, который сообщает об изменении своего состояния называется уведомителем или наблюдаемым объектом, а объекты, которые уведомляются об изменении состояния уведомителя называются подписчиками или наблюдателями.
Read the rest of this entry »

Tags: , , , ,