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