De ontwerp - methoden: de fabriek.

, ontwerp -: de fabriek methode,,,,,,,,,, 51, 11 - eenheid,,,,,,,, de delen van het netwerk, maandag wat in tuts + koers zal dalen tot slechts drie dollar.Niet' niet missen, een deel van de prijs van een reeks PHP genoemd ontwerp - patroon: waarnemers van de in de voorgaande artikelen in de mode, en we hebben de fabriek simpel.Nu, in dit artikel, we controleren de fabriek voor de ontwerp - model.In het geval van eenvoudige fabriek, dat voorziet in een interface voor het creëren van voorwerpen, en de fabriek voor hetzelfde doen, maar afgezien van het voorbeeld van het soort besluit logica.,,, dat de fabriek van eenvoudige wijze, gebruik ik een auto om de verschillende soorten objecten gevallen, dit is auto 's, cross - country auto' s, ik zal blijven dezelfde voorbeelden uit de fabriek, methode, dus hebben we een beter idee en het probleem van de continuïteit van de,,.,,, in een eenvoudige fabriek we auto 's van een object, maar in feite is het creëren van een type van auto' s die we hebben aangenomen op basis van auto 's object.Dit is een stap in de goede richting, te beginnen met de verschillende soorten auto 's betreft, in het begin van ons bedrijf is beperkt, de verkoop van auto' s in de Verenigde Staten, slechts een van de centra in de Verenigde Staten alleen.Maar naarmate de tijd verstreek, de uitbreiding van het bedrijf in het Verenigd Koninkrijk, besloten de verkoop van auto 's, en de oprichting van een nieuw centrum voor de productie van in het Verenigd Koninkrijk, in het centrum van twee productie, onze oude code van auto' s en een boete, maar om de tevredenheid van de klanten van het bedrijf in auto 's, besloten een verandering van model, maar het Verenigd Koninkrijk de auto' s.In deze fase, we hebben een code voor de bouw van een auto object zal falen, want we moeten een extra functies (kenmerken) van een bepaald type van auto 's, we hebben twee mogelijkheden: ofwel, in dit geval een wijziging van de huidige code (multi - indien aan de overige voorwaarden) gewenste object van auto' s, of de aanpassing van onze soort op een manier die de andere voorwaarden, hoeft niet smerig, als je wilt nog wat meer functies, maar op de categorie van beperkte aard, de eerste methode niet willen, want het is een lappendeken van je in je code, maar niet de echte uitvoering.In het volgende hoofdstuk, en we zullen zien hoe het gebruik van modellen om te beseffen dat de fabriek voor de tweede methode, en een oplossing voor dit ontwerp - behoort tot de categorie van het structuur - en dus meer bezorgd over hoe de structuur van de klasse van je.Dus, laten we het op de juiste wijze de opbouw van onze programma 's, om het probleem op te lossen, eenvoudig in een fabriek, hebben we geen gebruik te maken van de structuur, omdat we alleen maar een soort, verantwoordelijk voor het creëren van een object van de auto' s.In het kader van de huidige problemen, moeten we de oprichting van een centrum voor de productie van afzonderlijke fabrieken, dus we moeten ervoor zorgen dat alle fabrieken eenzelfde proces voor het creëren van een soort.Dus, we maken een interface, de Verenigde Staten en het Verenigd Koninkrijk zal de uitvoering van de fabriek.,,, - carfactory {openbare functie buildcar (type);}, de interface voor de fabriek, nu we klaar zijn, als het tijd is om onze fabrieken en in de Verenigde Staten en het Verenigd Koninkrijk van De fabriek, auto 's, //- fabriek. Op basis van de Midden - Amerikaanse uscarfactory een openbare functie van de verwezenlijking van carfactory () {} {__construct openbare functie buildcar (type) {% auto = nul; - (-) - zaak "SUV' s": $auto = nieuwe ussuvfactory (); de breuk; zaak auto 's ": $auto = nieuwe ussedanfactory (); de schuld; de standaard: $auto = nieuwe ussedanfactory (); de pauze;}}} terug naar de auto, oprichting van het Verenigd Koninkrijk /klasse.Op basis van het centrum ukcarfactory uitvoering van openbare functies carfactory () {} {__construct openbare functie buildcar (type) {% auto = nul; - (-) - zaak "SUV 's": $auto = nieuwe uksuvfactory (); de breuk; zaak auto' s ": $auto = nieuwe uksedanfactory (); de standaard: $auto 's schuld; = nieuwe uksedanfactory (); de schuld van de auto terug;};}}, in dit stadium, we hebben de fabriek te creëren, en nu hebben we specifieke categorieën.Maar met de fabriek, en we hopen dat we de specifieke klassen om de noodzakelijke middelen, die gemeenschappelijk is voor alle specifieke categorieën openbare functies, interfaces, auto - getlocation (); de functie van gettype ();}, verhogen we de zeer fundamentele benadering, die in onze klas van de locatie en de aard van de auto.Nu zullen we de verwezenlijking van onze specifieke klasse, klasse, als volgt. Ussuvfactory dat auto 's (particuliere dollar positie van particuliere auto' s; openbare functies; __construct () {% dit > - "we"; de dollar - > auto = "SUV 's";} {regressie van openbare functies () getlocation dollar - > plaats;} {regressie van openbare functies () gettype dollar - > vervoer;}} {particuliere voertuigen van categorie ussedanfactory dat dollar standpunt; particuliere auto; de functie van __construct () {% dit > - "we"; de dollar - > auto' s "; de openbare functie = getlocation () {} de terugkeer van dollar - > plaats;} {regressie van openbare functies () gettype dollar - > vervoer;}} {uksuvfactory verwezenlijking van auto 'sUSD US - dollar privé standpunt; particuliere auto; de functie van __construct () {% dit > positie = "Verenigd Koninkrijk"; de dollar - > auto = "SUV 's";} {regressie van openbare functies () getlocation dollar - > plaats;} {regressie van openbare functies () gettype dollar - > vervoer;} particuliere voertuigen van categorie uksedanfactory uitvoering} {dollar standpunt; particuliere auto' s; openbare functies __construct () {% dit > positie = "Verenigd Koninkrijk"; de dollar - > auto = auto 's ";} {regressie van openbare functies () getlocation dollar - > plaats; de openbare functie () {} gettype terug naar dit - *; auto' s;}}, we doen ons specifieke vormen van de uitvoering van dit is in feite een object op basis van de locatie en de aard van de auto 'sHier, de rest is gebruik te maken van de uitvoering, en zien hoe het boven de oplossing al zei, onze auto 's. Usfactory, /USD = nieuwe uscarfactory (Verenigde Staten); ///////ussuv dollar SUV' s = USD usfactory - > buildcar ('suv "); De ECHO $ussuv - > getlocation ("). Op basis van de ".Ussuv dollar - > ///////gettype (); de Amerikaanse modellen personenauto 's ussedan dollar = dollar usfactory - > buildcar ('sedan "); de ECHO $ussedan - > getlocation gebaseerd" ().Ussedan dollar - > gettype (); ///////auto 's van het Verenigd Koninkrijk. Ukfactory dollar = nieuwe ukcarfactory (Verenigd Koninkrijk); ///////uksuv dollar SUV' s = USD ukfactory - > buildcar ('suv "); de ECHO $uksuv - > getlocation gebaseerd" ().Uksuv dollar - > gettype (Verenigd Koninkrijk); ///////modellen personenauto 's uksedan dollar = dollar ukfactory - > buildcar ('sedan "); de ECHO $uksedan - > getlocation gebaseerd" ().Uksedan dollar - > gettype ();,, zou je kunnen zeggen, we hebben daadwerkelijk van het object van alle mogelijke vormen van de positie van de auto.We hebben een goede structuur en dus niet te veel problemen, de toevoeging van een nieuwe fabriek.    , de toevoeging van een nieuwe fabriek,, laten we ons eens voorstellen dat een onderneming heeft besloten in Australië te beginnen met nieuwe industriële centra.,,, als een goede structuur van onze klas, nu. Geen probleem, nu de nieuwe soorten toegevoegd aan de voor de productie van auto 's de oprichting van een centrum van Australië.  ,, //fabrieken werd vastgesteld op basis van de verwezenlijking van auscarfactory klasse carfactory centrum van Australië __construct () {} {openbare functie van openbare functies buildcar (type) {% auto = nul; - (-) - zaak "SUV' s": $auto = nieuwe aussuvfactory (); de breuk; zaak auto 's ": $auto = nieuwe aussedanfactory (); de schuld; standaard: $auto = nieuwe aussedanfaCtory (); uit de auto terug;}}}; ///////o van auto 's aussuvfactory centrum dat particuliere dollar {specifieke categorie positie; particuliere auto dollar; de functie van __construct () {% dit standpunt = "O" >; de dollar - > auto = "SUV' s"; openbare functie getlocation (}) {terugkeer dollar - > plaats;} {regressie van openbare functies () gettype dollar - > vervoer;}} {particuliere voertuigen van categorie aussedanfactory dat dollar standpunt; particuliere auto; de functie van __construct () {% dit standpunt = "O" >; de dollar - > auto = "auto 's;} {terug naar de openbare taken van $getlocation () - > plaats;} {regressie van openbare functies () gettype dollar - > vervoer;}} ///////- fabriek in Australië ausfactory dollar = nieuwe auscarfactory (); ///////o van de SUV aussuv dollar = dollar ausfactory - > buildcar ('suv "); de ECHO $aussuv - > getlocation gebaseerd" ().Aussuv dollar - > gettype (); ///////AO - model van een auto van $aussedan = USD ausfactory - > buildcar ('sedan "); de ECHO $aussedan - > getlocation gebaseerd" ().Aussedan dollar - > gettype ();,, ten einde de,, dus we zien hoe we de organisatie van onze klas, op een manier die ze kunnen worden uitgebreid zonder wijzigingen de basis en de cliënt.Om aan uw inbreng in de onderstaande opmerkingen of tweet @ xpertdevelopers.,,



Previous:
Next Page: