Преимущество (2) состоит в том, что если ваша программа развивается, чтобы использовать другое семейство сущностей, у вас уже будет структура образца - ваш клиентский код будет создавать сущности через абстрактный интерфейс фабрики.
(1) включает в себя меньше классов, и это хорошо, если вы уверены, что вам не понадобится другое семейство сущностей (но если бы это действительно было так, я думаю, что вы не использовали бы здесь фабричный шаблонна все).