Имеет ли шаблон проектирования временного скрытия объекта в другом непрозрачном объекте стандартное имя? - PullRequest
0 голосов
/ 30 апреля 2009

У меня есть особый вид коллекций (на объектно-ориентированном языке программирования), который предоставляет широкий спектр сервисов персистентности, но также запрашивается другими компонентами. Иногда у меня есть объекты, которые мне нужно хранить в репозитории, но чей тип я хотел бы скрыть от других сервисов до тех пор, пока он не будет готов (например, одобрен или завершен, или что у вас есть). Я решаю это путем инкапсуляции целевого объекта в непрозрачный класс «контейнер».

В качестве конкретной аналогии вы можете рассмотреть что-то вроде каталога в файловой системе. Допустим, файловая система содержит все виды фотографий для просмотра фотоальбомов. Возможно, есть некоторые фотографии, которые еще не готовы к публикации, но которыми вы хотели бы управлять с помощью файловой системы. Их можно скрыть из фотоальбома, изменив расширение (например, .jpg.temp вместо .jpg) или спрятав их в непрозрачный контейнерный объект (т. Е. Сохранив его в zip-архиве или сжав его), продолжая при этом Преимущество контейнера и возможность других инструментов запрашивать все файлы .jpg.temp.

Я просто ищу стандартную терминологию, которая могла бы описать такую ​​ситуацию. Фасад и Прокси, кажется, соответствуют общей реализации, но не намерению.

Ответы [ 3 ]

1 голос
/ 30 апреля 2009

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

1 голос
/ 30 апреля 2009

Игорь прав - определенно прокси.

Это где-то между «защитным прокси» и «виртуальным прокси».

Вы создаете замену для не совсем готового объекта и управляете доступом к нему.

Истинный виртуальный прокси-сервер создает базовый ресурс при запросе любых операций.

Защитный прокси-сервер управляет доступом к базовому объекту.

Я бы сказал, что то, что вы делаете, немного ближе к прокси-серверу защиты, но прокси-сервер защиты обычно подразумевает авторизацию / аутентификацию.

0 голосов
/ 30 апреля 2009

Я думаю, что шаблон состояния может быть самым близким из известных мне.

...