Dette eksemplet illustrerer hvordan fabrikkmetoden kan brukes til å lage plattform-UI-elementer uten å koble klientkoden til konkrete UI-klasser.
Basisdialogklassen bruker forskjellige UI-elementer for å gjengi vinduet. Under forskjellige operativsystemer kan disse elementene se litt annerledes ut, men de bør fortsatt oppføre seg konsekvent. En knapp i Windows er fortsatt en knapp i Linux.
Når fabrikkmetoden kommer til spill, trenger du ikke å omskrive logikken i dialogboksen for hvert operativsystem. Hvis vi erklærer en fabrikkmetode som produserer knapper i basisdialogklassen, kan vi senere opprette en dialogunderklasse som returnerer Windows-stilte knapper fra fabrikkmetoden. Underklassen arver deretter mesteparten av dialogens kode fra baseklassen, men takket være fabrikkmetoden kan den gjengi Windows-utseende knapper på skjermen.
For at dette mønsteret skal fungere, må basedialogklassen arbeid med abstrakte knapper: en basisklasse eller et grensesnitt som alle konkrete knapper følger. På denne måten forblir dialogens kode funksjonell, uansett hvilken type knapper den fungerer med.
Selvfølgelig kan du også bruke denne tilnærmingen til andre brukergrensesnittelementer. Imidlertid, med hver nye fabrikkmetode du legger til i dialogen, kommer du nærmere Abstract Factory-mønsteret. Frykt ikke, vi snakker om dette mønsteret senere.