Використовуйте заводський метод при створенні екземплярів підкласу та клієнтського коду не несе відповідальності за визначення конкретного підкласу.
Це корисно, оскільки заважає вам змінювати код клієнта, коли вам потрібно змінити, який клас отримує екземпляр. Зміна існуючого коду є поганою практикою, оскільки він, як правило, схильний до помилок.
Прикладом може бути підкласи, де кожен сортує дані у порядку зростання, але по-іншому. Кожен спосіб є оптимальним для певного виду даних. наприклад: частково відсортовані дані, дані, які є цифрами тощо. Код клієнта - це клас, який обробляє лише друк даних. Наявність коду, який визначає, який клас сортування буде інстанційований у класі клієнта, зробить його складним класом. Іншими словами, в цьому випадку є більше відповідальності, вирішуючи, який клас сортування є оптимальним та друкує дані. Встановивши код, який визначає, який клас сортування буде інстанційований у заводський клас, він розділяє проблеми, щоб вам не потрібно міняти клас клієнта щоразу, коли потрібно змінювати, який підклас сортування отримує примірник.
Це спосіб прикрити свою дупу, якщо ви можете передбачити ваші самостійні внесення змін вниз по лінії того, як або який клас отримується миттєво, тоді фабричні класи мають сенс використовувати. Це допомагає тримати ваші заняття зосередженими на їхній одній відповідальності, і, як наслідок, гарантує, що вам менше доведеться змінювати існуючий код, який не пов'язаний.