De huvudskillnad mellan fabriksmönster och abstrakta fabriksmönster är att fabriksmönster ger ett sätt att skapa objekt utan att specificera den exakta klassen som används för att skapa den medan abstrakta fabriksmönstret ger en metod för att kombinera en grupp enskilda fabriker utan att specificera deras betongklasser.
Designmönster är lösningarna på allmänna problem som utvecklare möter när man utvecklar programvara. De är generiska och beror inte på systemtyp eller programmeringsspråk. Dessutom är de beprövade lösningar och ger bästa praxis. Det finns tre typer av designmönster som skapande, strukturella och beteendemässiga. Skapande mönster ger en metod för att skapa objekt samtidigt som de döljer skapelseslogiken. Dessutom gör de programmet mer flexibelt. Fabriksmönster och abstrakta fabriksmönster är två sådana skapande mönster.
1. Vad är Fabriksmönster
- Definition, Funktionalitet
2. Vad är Abstract Factory Pattern
- Definition, Funktionalitet
3. Vad är skillnaden mellan fabriksmönster och abstrakta fabriksmönster
- Jämförelse av viktiga skillnader
Abstrakt Fabriksmönster, Fabriksmönster
Ett fabriksmönster ger en bra metod för att skapa objekt. Med hjälp av denna metod kan programmeraren skapa objekt utan att avslöja skapelseslogiken. Det är också möjligt att hänvisa det nyskapade objektet med ett gemensamt gränssnitt. Se nedan program.
Figur 1: Form-gränssnitt
Figur 2: Rektangelklass
Figur 3: Kvadratkurs
Figur 4: Cirkelklass
Figur 5: ShapeFactory klass
Figur 6: Huvudklass
Form-gränssnittet har en abstrakt metod som kallas teckning. Rektangel, Square och Circle är klasser. De implementerar Shape-gränssnittet. Därför ger dessa klasser ett genomförande för metoddragningen. Ritningsmetoden i varje klass har sin egen genomförande. ShapeFacotry-klassen har en metod som heter getShape. Det blir en sträng. Denna metod returnerar ett objekt enligt den mottagna strängen.
I huvudmetoden finns ett objekt som heter form. Det är av typen ShapeFactory. GetShape-metoden heter med det objektet. Strängen "Rektangel" skickas till den. Det återvändande objektet lagras till form1, vilket är av typformat. På samma sätt skickas strängarna "SQUARE" och "CIRCLE" till getShape. Returobjekten lagras till form2 och form3. Varje objekt kallar dragningsmetoden och motsvarande dragningsmetod exekveras enligt den överförda strängen.
Huvudprogrammet använder ShapeFactory-klassen för att få ett Shape-objekt. Den skickar den önskade strängen till ShapeFactory för att få den typ av objekt som den behöver.
Abstract Factory Pattern använder en superfabrik och skapar andra fabriker. Det är också känt som a fabriksfabriken. I det här mönstret skapar ett gränssnitt en fabrik med relaterade objekt utan att explicit ange deras klasser. Med andra ord, efter att ha skapat superfabriken kan den skapa andra fabriker. Se nedan program.
Figur 7: Färggränssnitt
Figur 8: Gul klass
Figur 9: Orange klass
Figur 10: Lila klass
Figur 11: AbstractFactory klass
Figur 12: ShapeFactory klass
Figur 13: ColorFactory klass
Figur 14: FactoryProducer-klassen
Figur 15: Huvudprogram
Gränssnitt Shape och klasserna Rektangel, Square, Circle är samma som föregående avsnitt. Färgen är ett gränssnitt; Den har en abstrakt metod som kallas fyllning. Klasserna Yellow, Orange och Purple implementerar det gränssnittet. Därför ger dessa klasser genomförande för fyllningsmetoden. Klassen AbstrcatFactory har två metoder som getShape och getColor. Klassen ShapeFactory utökar AbstractFacotry. På liknande sätt utökar ColorFactory-klassen AbstractFactory. Dessa klasser har implementeringar för getShape och getColor metoder.
FactoryProducer-klassen har en metod som heter getFactory som returnerar ett AbstractFactory-typobjekt. Den returnerar ett ShapeFactory-objekt eller ColorFactory-objekt eller null beroende på strängen som den får. Slutligen använder den huvudsakliga metoden FactoryProducer för att få AbstractFactory för att få fabriker av konkreta klasser.
Dessutom använder den huvudsakliga metoden FactoryProducer för att få ett AbstractFactory-objekt. Den skickar information som "REKTANGEL", "SQUARE", "CIRCLE" till AbstractFactory för att få den typ av objekt som den behöver. Dessutom skickas det också information som "GUL", "ORANGEL", "PURPEL" för att få den typ av objekt som den behöver.
Fabriksmönster är ett skapningsmönster som använder en metod för att hantera problemet med att skapa objekt utan att behöva ange den exakta klassen av objektet som ska skapas. Abstrakt fabrikmönster är å andra sidan ett skapningsmönster som ger ett sätt att inkapslera en grupp av enskilda fabriker som har ett gemensamt tema utan att specificera sina konkreta klasser. Således förklarar dessa definitioner huvudskillnaden mellan fabriksmönster och abstrakta fabriksmönster.
En annan skillnad mellan fabriksmönster och abstrakta fabriksmönster är att fabriksmönstret döljer konstruktionen av ett enda objekt medan abstrakta fabriksmönster döljer byggandet av en familj av relaterade föremål.
Fabriksmönster och abstrakta fabriksmönster är två kreativa designmönster. Fabriksmönster ger en metod att skapa objekt utan att specificera den exakta klassen som används för att skapa den. I motsats härtill ger abstrakta fabriksmönster ett sätt att kombinera en grupp enskilda fabriker utan att specificera sina betongklasser. Därför är detta den största skillnaden mellan fabriksmönster och abstrakta fabriksmönster.
1. "Fabriksmetodens designmönster." Javatpoint, tillgängligt här.
2. "Abstract Factory Pattern." Javatpoint, Tillgänglig här.