Шаблон Abstract Factory, вероятно, лучше всего подходит для сценария, который вы описали. Вам понадобится иерархия процессоров отдела и соответствующая иерархия классов кафедры. Абстрактная фабрика будет производить конкретную фабрику для каждой пары на основе некоторого дискриминатора, обрабатывать отдел для вас и возвращать объект Отдел.
Остальной части вашего приложения не нужно знать о различиях в создании объектов отдела, поскольку оно будет использовать FActory для получения отделом простого прохождения соответствующего дискриминатора.
Для добавления нового отдела потребуется новый класс отделов, класс процессора и обновление заводской логики.
В качестве альтернативы, если структура отделов одинакова, но обработка различна, вы можете использовать что-то вроде шаблона Стратегии. В этом случае у вас есть один отдел, но вместо него будет принято решение об обработке для Стратегии. Таким образом, соответствующая Стратегия вводится в отдел, и поведение отдела соответственно различается.