Кто-то рассказал вам о кешировании. Это хорошо. Но вы также должны помнить о шаблоне Flyweight, который удобно использовать в Factory.

оделировании классов, какой предпочтительный способ инициализации:

Конструкторы, илиФабрика Методы

И каковы были бы соображения для использования любого из них?

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

Скажем, у меня есть конструктор класса, который ожидает значение id. Конструктор использует это значение для заполнения класса из базы данных. В случае, когда запись с указанным идентификатором не существует, конструктор создает исключение RecordNotFoundException. В этом случае мне придется заключить конструкцию всех таких классов в блок try..catch.

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

Какой подход лучше в этом случае, конструктор или фабричный метод?

Ответы на вопрос(10)

Ваш ответ на вопрос