Fabryka abstrakcyjna (wzorzec projektowy)/kod

Z Wikiźródeł, repozytorium wolnych materiałów źródłowych
Skocz do: nawigacji, wyszukiwania


Fabryka abstrakcyjna (wzorzec projektowy) • Kod źródłowy
Fabryka abstrakcyjna (wzorzec projektowy)
Kod źródłowy
Kody źródłowe programów stosujących wzorzec projektowy fabryki abstrakcyjnej
Wikipedia
Zobacz w Wikipedii hasło Fabryka abstrakcyjna


[edytuj] Java

/* Przykład GUIFactory */
 
abstract class GUIFactory {
    public static GUIFactory getFactory() {
        int sys = readFromConfigFile("OS_TYPE");
        if (sys == 0) {
            return new WinFactory();
        } else {
            return new OSXFactory();
        }
    }
 
    public abstract Button createButton();
}
 
 
class WinFactory extends GUIFactory {
    public Button createButton() {
        return new WinButton();
    }
}
 
 
class OSXFactory extends GUIFactory {
    public Button createButton() {
        return new OSXButton();
    }
}
 
 
 
abstract class Button {
    public abstract void paint();
}
 
 
class WinButton extends Button {
    public void paint() {
        System.out.println("Przycisk WinButton");
    }
}
 
 
class OSXButton extends Button {
    public void paint() {
        System.out.println("Przycisk OSXButton");
    }
}
 
 
public class Application {
    public static void main(String[] args) {
        GUIFactory factory = GUIFactory.getFactory();
        Button button = factory.createButton();
        button.paint();
    }
    // Wyświetlony zostanie tekst:
    //   "Przycisk WinButton"
    // lub:
    //   "Przycisk OSXButton"
}
Osobiste
Przestrzenie nazw

Warianty
Działania
Nawigacja
Dla edytorów
Drukuj lub eksportuj
Narzędzia