Il fait partie des creational pattern. Utilisé pour instancier des objets d’une même famille sans se soucier des classes à instancier. Mettre en oeuvre ce pattern nécessite une interface AbstractFactory, qui déclare les méthodes de création. Des classes ConcretFactory, qui implémentent l’interface AbstractFactory. Des interfaces AbstractProduct et des classes ConcretProduct qui implémentent ces derniers.