Уникат (пројектни узорак)

У софтверском инжењерству, уникат ( енгл. singleton) је пројектни узорак којим се обезбеђује да класа има само једну инстанцу. Ово је корисно када је тачно један објекат потребан да координише акције у систему. Овај концепт се некад генерализује на целе системе који раде ефикасније када постоји само један објекат, или на ограничавање инстанцирања, не на један, него на тачно одређен број објеката (нпр. пет). Овај пројектни узорак неки сматрају и антиузорком јер се превише користи, уноси непотребна ограничења када само једна инстанца класа уопште ни није потребна и уноси глобално стање у програм. [1] [2] [3] [4] [5] [6]

Опште употребе

  • Пројектни узорци апстрактне фабрике, градитеља и прототипа могу да користе уникат у њиховим имплементацијама.
  • Објекти фасаде су најчешће уникати јер је углавном потребан само један објекат фасаде.
  • Објекти који чувају стање су често уникати.
  • Уникати се углавном преферирају у односу на глобалне променљиве јер:
    • Не загађују глобални именски простор (а у језицима који имају именске просторе, простор у коме су садржани) непотребним променљивама. [7]
    • Омогућавају лењу алокацију и иницијализацију док глобалне променљиве у многим језицима увек заузимају ресурсе, коришћене или не.
други језици