Страницы

Поиск по вопросам

суббота, 23 марта 2019 г.

Паттерн ООП, ограничивающий количество экземпляров класса по аттрибуту

Как организовать невозможность в программе существования нескольких экземпляров одного класса с одинаковым значением определенного атрибута? Как называется такой паттерн ООП (если он есть)? Пишу приложение на JAVA, многопоточное, но примеры интересны на различных языках программирования (естественно с ООП парадигмой).


Ответ

В общем случае наиболее подходит под вашу задачу паттерн Factory. В частном случае, когда разрешен всего 1 объект это классический Singleton. Единственное, я бы не стал возлагать на паттерн задачу безопасности ибо что Singleton, что Factory ломаются на раз-два. Update Применительно к Java такой способ ведь действительно существует и часто используется в реальной жизни - например кэширование пула коннектов (например JDBC). Как известно, коннект ресурс достаточно дорогой и ценный и если по ходу пьесы коннект берется во многих местах имеет смысл организовать кэширование коннектов с ограничением количества оных. Вполне аналогично также и ставится ограничение на количество окон в системе. Да в том же Android'е надысь писал такую штуку. Ставится корневой класс - прародителей всех Activity и вперед создавать списочек, контроль все как надо. Так что надо попроще и без кошачьих завихрений, а то совсем ужо замутили головы boost commiter, перегрузка операторов... P.S. Ну вы млин даёте :)

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

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