Najlepszy samouczek Fabryka abstrakcyjna W 2024 r. W tym samouczku możesz dowiedzieć się wprowadzenie,realizacja,
Abstract Factory (fabryka abstrakcyjna) jest tworzony wokół super roślinnych innych roślin. Roślina jest również znany jako super innych fabryk fabryce. Tego rodzaju wzorców projektowych należy stworzyć schemat, który zapewnia najlepszy sposób tworzenia obiektów.
W fabryka abstrakcyjna, interfejs jest odpowiedzialny za tworzenie obiektów związanych z rośliną, bez wyraźnego określania swoich klas. Każdy generowany cel, według fabryce mogą dostarczyć modelu fabrycznego.
Intencja: aby stworzyć serię interfejsu pokrewnych lub zależnych obiektów, bez określania ich konkretnych klas.
Głównie do rozwiązania: Głównym problemem opcji interfejsu.
Kiedy stosować: Produkty systemowe mają więcej niż jedną rodzinę produktów, a jedyny system, w którym rodzina produktów konsumenckich.
Jak naprawić: w rodzinie produktów wewnątrz zdefiniować wiele produktów.
Kod klawisza: kruszywa wiele podobnych produktów w fabryce.
Przykłady zastosowań: praca, aby wziąć udział w kilku spotkaniach, nie muszą być dwa lub więcej zestawów ubrań, że, powiedzmy, strój biznesowy (komplety, szereg konkretnych produktów), moda (komplety, szereg konkretnych produktów), nawet dla rodziny Możesz mieć kobiety biznesu, mężczyźni biznesowego, moda damska, moda męska, są również komplety, a mianowicie szereg konkretnych produktów.Załóżmy sytuację (w rzeczywistości nie istnieje, albo nie komunizm, lecz na rzecz Abstract Factory opisie wzoru), w domu, jedna szafa (beton fabrycznych) może przechowywać tylko jeden takich ubrania (komplety, serię konkretnego produktu), za każdym razem, gdy ma to zestaw ubrań z szafy naturalnie wyjęte. Z OO myślenia do zrozumienia, całą szafę (betoniarnia) są szafy klasy (streszczenie fabryczne) jeden, a każdy jeden zestaw ubrań i tym konkretnym Jacket (konkretny produkt), spodnie (specyficzny Produkt), są to bowiem specyficzny koszula kurtka (streszczenie produkty), charakterystyczne spodnie spodnie (inny abstrakcyjne produktu).
Plusy: Kiedy rodzina Produkty Inne obiekty są zaprojektowane tak, aby pracować razem, możemy zapewnić, że klient zawsze używać tylko te same obiekty rodziny produktów.
Wady: Dalsza rodzina produktów jest bardzo trudne, aby zwiększyć zakres produktu, zarówno w abstrakcyjne Creator kod Rydze, ale także, aby dodać konkretny kod wewnątrz.
Scenariusze użycia: 1, QQ dla skóry, zestaw zmian razem.2, wygenerować różne procedury systemu operacyjnego.
Uwaga: W dalszej rodziny produktów jest trudne, łatwo rozszerzyć poziom produktu.
Będziemy tworzyć interfejs i implementacja klasy interfejskształtikolortych podmiotów. Następnym krokiem jest utworzenie klasy abstrakcyjnej fabrycznieAbstractFactory.Następnie określićShapeFactoryklasy fabryki iColorFactory,te dwie klasy są fabrycznie rozszerzonaAbstractFactory.Następnie należy utworzyć klasy twórca fabryki / budowniczyFactoryProducer.
AbstractFactoryPatternDemo,nasze zajęcia demonstracyjne wykorzystująceFactoryProducerdostaćAbstractFactoryobiekt. przechodzi ona kształtKształtinformacje(Okrąg / prostokąt / kwadrat)doAbstractFactory,musi uzyskać typ obiektu. przekazuje również informacje o kolorze(czerwony/ zielony / niebieski), abyAbstractFactory,musi uzyskać typ obiektu.
Interfejs utworzyć kształt.
Shape.java
public interface Shape { void draw (); }
Tworzenie klasy podmiotu, który implementuje interfejs.
Rectangle.java
public class Rectangle realizuje Shape { @Override public void draw () { ( "Metoda Wewnątrz prostokąt :: draw ().") System.out.println; } }
Square.java
Plac realizuje public class Shape { @Override public void draw () { ( "Metoda Wewnątrz Plac :: draw ().") System.out.println; } }
Circle.java
Koło realizuje public class Shape { @Override public void draw () { ( "Metoda wewnątrz okręgu :: draw ().") System.out.println; } }
Tworzenie interfejsu dla koloru.
Color.java
Kolor {public interface void fill (); }
Tworzenie klasy podmiotu, który implementuje interfejs.
Red.java
public class Red realizuje Kolor { @Override public void fill () { ( "Metoda Wewnątrz Red :: fill ().") System.out.println; } }
Green.java
public class Zielona realizuje Kolor { @Override public void fill () { ( "Metoda Wewnątrz Zielona :: fill ().") System.out.println; } }
Blue.java
public class Niebieski Kolor realizuje { @Override public void fill () { ( "Metoda Wewnątrz Niebieski :: fill ().") System.out.println; } }
Tworzenie klasy abstrakcyjnej dla koloru i kształtu obiektów, aby uzyskać fabrykę.
AbstractFactory.java
public abstract class AbstractFactory { Streszczenie kolor GetColor (kolor String); abstrakcyjny kształt getShape (kształt String); }
Tworzenie rozszerzoną AbstractFactory klasy fabrycznej, podmiot generację klasy obiektów na podstawie podanych informacji.
ShapeFactory.java
public class ShapeFactory rozciąga AbstractFactory { @Override Kształt publicznego getShape (String shapeType) { if (shapeType == null) { powrót null; } if (shapeType.equalsIgnoreCase ( "CIRCLE")) { powrót nowy krąg (); } Else if (shapeType.equalsIgnoreCase ( "prostokąt")) { return new Rectangle (); } Else if (shapeType.equalsIgnoreCase ( "Kwadrat")) { powrót Plac Nowy (); } powrót null; } @Override Kolor GetColor (kolor String) { powrót null; } }
ColorFactory.java
public class ColorFactory rozciąga AbstractFactory { @Override Kształt publicznego getShape (String shapeType) { powrót null; } @Override Kolor GetColor (kolor String) { if (kolor == null) { powrót null; } if (color.equalsIgnoreCase ( "czerwony")) { powrót Nowy czerwony (); } Else if (color.equalsIgnoreCase ( "zielony")) { powrót New Green (); } Else if (color.equalsIgnoreCase ( "Blue")) { powrót Nowe niebieski (); } powrót null; } }
Utwórz fabryczny kategorię twórcą / budowniczy, przechodząc przez kształt lub kolor, aby uzyskać informacje fabrykę.
FactoryProducer.java
{public class FactoryProducer public static AbstractFactory getFactory (wybór String) { if (choice.equalsIgnoreCase ( "kształt")) { powrót nowego ShapeFactory (); } Else if (choice.equalsIgnoreCase ( "COLOR")) { powrót nowego ColorFactory (); } powrót null; } }
Używać FactoryProducer uzyskać AbstractFactory, w celu uzyskania obiektu klasy przekazując informacje typu jednostki.
AbstractFactoryPatternDemo.java
{public class AbstractFactoryPatternDemo public static void main (String [] args) { // Pobierz kształt fabryki AbstractFactory shapeFactory = FactoryProducer.getFactory ( "kształt"); // Pobierz obiekt Shape kształcie okręgu shape1 = shapeFactory.getShape ( "CIRCLE"); // Wywołanie metody przy zaciąganiu shape1.draw Kole (); // Pobierz obiekt prostokąta Shape shape2 = shapeFactory.getShape ( "Prostokąt"); // Wywołanie metody przy zaciąganiu shape2.draw Rectangle (); // Pobierz obiekt kształt kwadratowy kształt shape3 = shapeFactory.getShape ( "Kwadrat"); // Wywołujemy metodę draw Plac shape3.draw (); // Pobiera kolor Fabryki AbstractFactory colorFactory = FactoryProducer.getFactory ( "COLOR"); // Pobierz kolor obiektu jest Czerwony Kolor color1 = colorFactory.getColor ( "czerwony"); // Wywołujemy metodę fill Red color1.fill (); // Pobierz obiekt koloru zielonego koloru color2 = colorFactory.getColor ( "zielony"); // Wywołanie Greena wypełnienia metody color2.fill (); // Pobierz obiekt kolor niebieski kolor color3 = colorFactory.getColor ( "niebieski"); // Wywołujemy metodę fill Niebieski color3.fill (); } }
Sprawdź, czy wyjście.
Metoda Wewnątrz Circle :: draw (). Metoda Wewnątrz prostokąta :: draw (). Metoda środku placu :: draw (). Metoda Wewnątrz Red :: fill (). Wewnątrz metody Zielona :: fill (). Metoda Wewnątrz Niebieski :: fill ().