Мне вообще кажется, что как отдельный паттерн фабричный метод рассматривать не стоит, он только отвлекает и запутывает новичков ненужными размышлениями. Лучше твердо знать, что такое фабрика, что означают слова "фабрика — это абстракция над конструктором" и зачем нужны статические конструкторы, почему пара статических конструкторов с четкой сигнатурой лучше, чем каша в __construct. А фабричный метод ты и так сделаешь, когда увидишь, что один тип другой порождает просто потому, что только он и располагает всей необходимой для этого информацией.