Ten przykład ilustruje, jak można użyć metody fabryki do tworzenia międzyplatformowych elementów UI bez łączenia kodu klienta z konkretnymi klasami UI.
Podstawowa klasa okna dialogowego używa różnych elementów interfejsu użytkownika do renderowania swojego okna. W różnych systemach operacyjnych elementy te mogą wyglądać nieco inaczej, ale nadal powinny zachowywać się konsekwentnie. Przycisk w systemie Windows jest nadal przyciskiem w systemie Linux.
Kiedy w grę wchodzi metoda fabryczna, nie ma potrzeby przepisywania logiki okna dialogowego dla każdego systemu operacyjnego. Jeśli zadeklarujemy metodę fabryczną, która tworzy przyciski wewnątrz podstawowej klasy okna dialogowego, możemy później utworzyć podklasę okna dialogowego, która zwraca przyciski w stylu systemu Windows z metody fabrycznej. Podklasa dziedziczy wtedy większość kodu okna dialogowego z klasy bazowej, ale dzięki metodzie fabrycznej może renderować przyciski na ekranie wyglądające jak Windows.
Aby ten wzorzec działał, podstawowa klasa okna dialogowego musi pracować z przyciskami abstrakcyjnymi: klasą bazową lub interfejsem, za którym podążają wszystkie konkretne przyciski. W ten sposób kod okna dialogowego pozostaje funkcjonalny, niezależnie od typu przycisków, z którymi współpracuje.
Oczywiście możesz zastosować to podejście również do innych elementów interfejsu użytkownika. Jednak z każdą nową metodą fabryki dodawaną do okna dialogowego zbliżasz się do wzorca Fabryka abstrakcyjna. Nie bój się, o tym wzorcu porozmawiamy później.