Это нелегко без подробностей.Одна вещь, которую я хотел бы сделать, это попытаться передать аргументы конструктору класса конкретной фабрики.Для разных аргументов вам придется создать другой экземпляр фабрики, что может быть не лучшим решением, но, как уже было сказано, это зависит от деталей.
Пример:
GUIFactory factory = new WinFactory(WIN_9x_THEME);
Button greyButton = factory.createButton();
factory = new WinFactory(WIN_VISTA_THEME, 50);
Button semiTransparentButton = factory.createButton();