Eu diria que o Head First está simplesmente errado nessa caracterização.
A Wikipedia define o Método do modelo como:
Na engenharia de software, o padrão do método de modelo é um padrão de design comportamental que define o esqueleto do programa de um algoritmo em uma operação, adiando algumas etapas para as subclasses.
(Faz referência ao GoF para isso.)
E o Método de Fábrica é definido como:
Na programação baseada em classes, o padrão de método de fábrica é um padrão de criação que usa métodos de fábrica para lidar com o problema de criar objetos sem precisar especificar a classe exata do objeto que será criado.
Não há sobreposição entre os dois, exceto que em C ++, a herança é uma parte essencial de ambos. No entanto, em linguagens que fazem uma distinção entre herança de implementação ( extends
em Java) e implementação de interface ( implements
em Java), mesmo essa semelhança não existe, pois a implementação da interface é suficiente para o método de fábrica, mas não para o modelo. E em C ++, a herança pura de implementação (sem a herança da interface, ou seja, herança privada ou CRTP) pode ser usada para o primeiro, mas não para o último.
E além disso? Um é um padrão de design comportamental, o outro é um padrão criacional. Um descreve um esboço de uma operação, com algumas partes importantes deixadas de fora para serem preenchidas por subclasses especializadas; o outro especifica um contrato muito simples, deixando toda a implementação para instâncias concretas. Eles são completamente distintos.
Na minha opinião, a linha citada está simplesmente errada. Ou é um erro gritante no livro ou (menos provável) está fora de contexto e deve ser interpretado de maneira diferente.