воскресенье, 26 февраля 2012 г.

Отделённая реализация паттерна Singleton

Чем больше программируете, тем больше желаете, как можно меньше писать кода. Не всегда это правильное решение, но желание есть всегда. Также хотел отделить реализацию Singleton.  Пытался делать отдельным классом, который потом унаследовал. Да конечно результат можно было предсказать, но желание сделать быстро отключило разум. Да ещё раз на практике усвоил свойства статических методов(один и тот же экземпляр не в зависимости схемы унаследований). Случайно нашёл этот паттерн. Код написан на Python. Основная суть паттерна в том, что создаётся статический список Класса - экземпляра класса. На Python для обёртки класса использовали декоратор. Для других языков можно подобным способом реализовать базовый класс.

def singleton(cls):
 instances = {}
 def get_instance():
 if cls not in instances:
  instances[cls] = cls()
 return instances[cls]
return getinstance

@singleton
class MyClass:
 def do_something():
  pass

Комментариев нет:

Отправить комментарий