Hva er forskjellen mellom fabrikkmønster og abstrakte fabrikkmønster

De hovedforskjell mellom fabrikk mønster og abstrakt fabrikk mønster er at fabrikk mønster gir en metode for å lage objekter uten å spesifisere den nøyaktige klassen som brukes til å lage den mens abstrakt fabrikk mønster gir en metode for å kombinere en gruppe av individuelle fabrikker uten å spesifisere sine konkrete klasser.

Designmønstre er løsningen på generelle problemer utviklere møter når man utvikler programvare. De er generiske og er ikke avhengige av systemtypen eller programmeringsspråket. Videre er de bevisste løsninger og gir beste praksis. Det er tre typer designmønstre som kreasjon, struktur og oppførsel. Skjønnsmønster gir en metode for å lage objekter mens du skjuler skapelseslogikken. I tillegg gjør de programmet mer fleksibelt. Fabrikk mønster og abstrakte fabrikk mønster er to slike kreative design mønstre.

Nøkkelområder dekket

1. Hva er Factory Pattern
     - Definisjon, funksjonalitet
2. Hva er Abstract Factory Pattern
     - Definisjon, funksjonalitet
3. Hva er forskjellen mellom fabrikkmønster og abstrakte fabrikkmønster
     - Sammenligning av nøkkelforskjeller

Nøkkelord

Abstrakt Fabrikk Mønster, Fabrikk Mønster

Hva er Factory Pattern

Et fabrikkmønster gir en god metode for å lage objekter. Ved hjelp av denne metoden kan programmøren lage objekter uten å eksponere skapelseslogikken. Det er også mulig å referere det nyopprettede objektet ved hjelp av et felles grensesnitt. Se under program.

Figur 1: Form-grensesnitt

Figur 2: Rektangulær klasse

Figur 3: Kvadratkurs

Figur 4: Sirkelklasse

Figur 5: ShapeFactory klasse

Figur 6: Hovedklasse

Form-grensesnittet har en abstrakt metode kalt tegning. Rektangel, Square og Circle er klasser. De implementerer Shape-grensesnitt. Derfor gir disse klassene en implementering for metoden tegning. Tegningsmetoden i hver klasse har sin egen implementering. ShapeFacotry-klassen har en metode som heter getShape. Det blir en streng. Denne metoden vil returnere et objekt i henhold til den mottatte strengen.

I hovedmetoden er det et objekt som heter form. Det er av typen ShapeFactory. GetShape-metoden kalles ved hjelp av objektet. Strengen "Rektangel" sendes til den. Det gjenværende objektet lagres til form1, som er av typen form. På samme måte blir strengene "SQUARE" og "CIRCLE" sendt til getShape. Returobjektene lagres til form2 og shape3. Hvert objekt kaller draw-metoden og den tilsvarende tegnemetoden utføres i henhold til den overførte strengen.

Hovedprogrammet bruker ShapeFactory-klassen for å få en Shape-objekt. Den sender den nødvendige strengen til ShapeFactory for å få den typen objekt den trenger.

Hva er Abstract Factory Pattern

Abstract Factory Pattern bruker en super fabrikk og skaper andre fabrikker. Det er også kjent som en fabrikk fabrikker. I dette mønsteret oppretter et grensesnitt en fabrikk med relaterte objekter uten å spesifisere spesifikt sine klasser. Med andre ord, etter å ha opprettet superfabrikken, kan den skape andre fabrikker. Se under program.

Figur 7: Farge grensesnitt

Figur 8: Gul klasse

Figur 9: Oransjeklasse

Figur 10: Lilla klasse

Figur 11: AbstractFactory klasse

Figur 12: ShapeFactory klasse

Figur 13: ColorFactory klasse

Figur 14: FactoryProducer-klassen

Figur 15: Hovedprogram

Grensesnittform og klassene Rektangel, Firkant, Sirkel er det samme som forrige del. Fargen er et grensesnitt; den har en abstrakt metode som kalles fylle. Klassene gul, oransje og lilla implementerer dette grensesnittet. Derfor gir denne klassen implementering for fyllmetoden. AbstrcatFactory-klassen har to metoder som getShape og getColor. ShapeFactory-klassen utvider AbstractFacotry. På samme måte utvider ColorFactory-klassen AbstractFactory. Disse klassene har implementeringer for getShape og getColor-metoder.

FactoryProducer-klassen har en metode som heter getFactory, som returnerer et AbstractFactory-typeobjekt. Den returnerer et ShapeFactory-objekt eller ColorFactory-objekt eller null, avhengig av strengen det blir. Endelig bruker den viktigste metoden FactoryProducer å få AbstractFactory til å få fabrikker av betongklasser.

Videre bruker hovedmetoden FactoryProducer å få et AbstractFactory-objekt. Den overfører informasjon som "REKTANGLE", "SQUARE", "CIRCLE" til AbstractFactory for å få den typen objekt den trenger. Videre passerer den også informasjon som "GUL", "ORANGE", "PURPEL" for å få den type gjenstand det trenger. 

Forskjellen mellom fabrikkmønster og abstrakt fabrikkmønster

Definisjon

Fabrikkmønsteret er et kreasjonsmønster som bruker en metode for å håndtere problemet med å lage objekter uten å måtte spesifisere den eksakte klassen av objektet som skal opprettes. Abstrakt fabrikk mønster, derimot, er et kreasjonsmønster som gir en måte å inkapslere en gruppe av individuelle fabrikker som har et felles tema uten å spesifisere sine konkrete klasser. Derfor forklarer disse definisjonene hovedforskjellen mellom fabrikkmønster og abstrakt fabrikkmønster.

Gjemmer byggingen

En annen forskjell mellom fabrikkmønster og abstrakt fabrikkmønster er at fabrikkmønsteret skjuler byggingen av et enkelt objekt mens abstrakt fabrikkmønster skjuler byggingen av en familie av relaterte objekter.

Konklusjon

Fabrikk mønster og abstrakt fabrikk mønster er to kreasjonelle design mønstre. Fabrikkmønster gir en metode for å lage objekter uten å spesifisere den nøyaktige klassen som brukes til å lage den. I kontrast gir abstrakt fabrikkmønster en metode for å kombinere en gruppe av individuelle fabrikker uten å spesifisere sine konkrete klasser. Derfor er dette den viktigste forskjellen mellom fabrikk mønster og abstrakte fabrikk mønster.

Henvisning:

1. "Fabrikk Metode Design Mønster." Javatpoint, tilgjengelig her.
2. "Abstract Factory Pattern." Javatpoint, tilgjengelig her.