2013-03-19 7 views
1

Мой одноэлементный класс реализует интерфейс, и в будущем я могу ожидать, что выйдет много конкретной реализации. Я собираюсь создать экземпляр этого класса с помощью заводского метода. заводский метод может быть перегружен. Мой вопрос в том, насколько хороша или плохая эта идея?Создание одноэлементного класса с заводским методом

+0

Этот вопрос субъективен. У вас есть конкретный вопрос/сценарий? –

+0

@DeepakBala Я пишу абстракцию по механизму персистентности для своей системы .Say XMLPersistence.I хочу передать одну ссылку этого класса на каждую вызывающую подсистему. Я также знаю, что в будущем мне, возможно, придется перейти к другой реализации этого класс, но снова одна вещь экземпляра остается постоянной – ramoh

ответ

0

Не имеет значения, если экземпляр, возвращенный с вашего заводского метода, является одноэлементным. Это выбор реализации - сделайте то, что правильно для ваших нужд.

Кроме того, если ваша сигнатура метода возвращает интерфейс, то технически это метод abstract factory, а не метод factory.

1

Основываясь на вашем обновленном комментарии, вы можете это сделать. В методе фабрики выделяются одноэлементные реализации ваших классов персистентности на основе перегруженных параметров или значения enum/integer в параметре. Существует множество фреймворков, которые используют этот шаблон, скажем, чтобы предоставить вам экземпляры клиента, которые обмениваются данными с сервером на основе разных протоколов.

MyFactory.pbClient("host", port); 
MyFactory.httpClient("host", port); 
Смежные вопросы