De ontwerp - strategie

: ontwerp - strategie vormen:,,,,,,,,,,, 42, 6 - 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: decorateurs ontwerp vormen: de fabriek simpel, we hebben tot nu toe in een reeks van drie ontwerp - model.We hebben de definitie van vier verschillende modellen.In dit artikel, ik zal uitleggen   strategie ontwerpen, vallen, gedrag van mode,,,, heb je misschien een probleem: als we met dit ontwerp?Ik zou zeggen, als we er verschillende methoden (...) voor het uitvoeren van de operatie, en we hopen dat de toepassing van de procedure voor de selectie van specifieke manieren aan de hand van de parameters.Deze toestand is ook bekend als een beleid, en dit is een zeer eenvoudige voorbeelden, dit is een soort functies.Bijvoorbeeld, we hebben meerdere sortering) op basis van de methode van de onderdelen van de installatie, maar het aantal te kiezen, moeten we een algoritme om gebruik te maken van de beste prestaties, die. Dit model ook bekend als een politiek model.Hoewel de website is meer betalingen volgens de voorschriften van de poort, ze lijkt niet op de voorkant.Integendeel, de poort moeten gebaseerd zijn op een passende hoeveelheid voor auto 's vliegen.,,, met een eenvoudig voorbeeld, dan, als de auto' s van de waarde van minder dan 500 dollar betaald moet worden gebruikt, - norm voor de verwerking, maar als het is 500 dollar of meer, gebruik van een oom van de details van de verwerking (in de veronderstelling dat de details zijn opgeslagen).,,, zonder de uitvoering van passende strategieën, we hebben een code lijkt op het volgende: in de eerste plaats,,,, en we zullen betalen met een credit card via paypal grote klasse, dit is het volgende toevoegen.,, ///////soort betalen voor het gebruik van credit kaarten paybycc oom {particuliere ccnum dollar particuliere cctype = = = = = = = "; een dollar; de particuliere cvvnum dollar ="; de particuliere ccexpmonth dollar = "; de particuliere ccexpyear dollar ="; de functie vanBetalingen ($0) {ECHO "betalen".Bedrag. "Het gebruik van credit card "}}; ///////paybypaypal met paypal klasse (particuliere paypalemail dollar ="; de functie van de lonen (bedrag = 0) (ECHO "betalen".Bedrag. "Het gebruik van betaald ") ///////////////; //////////////////////////////////////////////////////////////////////////////////////////////////////.Bedrag = 5000; als (dollar > = 500) {% betalingen = nieuwe paybycc (); de betaling betaling van $> ($);} {% betalen of = nieuwe paybypaypal (); de betaling betaling van $> ($);}, hier, zou je kunnen zeggen dat we de voorwaarden moeten worden. Zodat we de codes.Stel je voor, als we de logica van nieuwe veranderingen nodig, of je zit in de logica van de fout, je moet het bedrag van de verandering.We moeten met een pleister, al die plaatsen, de code die we gebruiken. De oplossing van,,,, zullen wij de uitvoering van de strategie van dezelfde eisen, maar met het gebruik van modellen, die ons in staat zal stellen we de code een duidelijke, begrijpelijke en uitbreidbaarheid.   interface,,,, in De eerste plaats, we de interface te bereiken, zal de betaling van alle andere poort gebruikt.Uiteindelijk, dit zijn onze strategie. Paystrategy {openbare functies, interfaces en de lonen ($); uitvoering van klasse paybycc paystrategy {} particuliere ccnum dollar = "; de particuliere cctype =" dollar; particuliere cvvnum dollar = "; de particuliere ccexpmonth dollar ="; de particuliere ccexpyear dollar = "; de openbare taken van Het bedrag van de lonen (= 0 {')" betalen ".Bedrag. "Het gebruik van credit card "; dat paystrategy {}} klasse paybypaypal particuliere paypalemail dollar ="; de functie van de lonen (bedrag = 0) (ECHO "betalen".Bedrag. "Het gebruik van schat ";}}, en de volgende stap zal zijn om onze eerste klasse, kan het gebruik van de verschillende strategieën dan we tot nu toe ShoppingCart.,, (publiek bedrag = 0; de functie van __construct (bedrag = 0) {% van dit bedrag = > het bedrag van de openbare functie getamount (}); {terugkeer dollar - >;) openbare functies - project (bedrag = 0) {% van dit bedrag = > het bedrag van de openbare functie;} payamount () {als (de hoeveelheid > > = 500) {% betalingen = nieuwe paybycc ();} of {% betalingen = nieuwe paybypaypal ();} $betalen - > betaling (dollar - > bedrag);}}, hier kunnen we zien dat we de voorwaarden voor de betaling van de belasting is  , doe payamount, methode.Laten we al die dingen samen, om te kijken hoe we het kunnen met deze verdere.,, - paystrategy {openbare functies lonen ($); uitvoering van klasse paybycc paystrategy {} particuliere ccnum dollar = "; de particuliere cctype =" dollar; particuliere cvvnum dollar = "; de particuliere ccexpmonth dollar ="; de particuliere ccexpyear dollar = "; de functie van de lonen (bedrag = 0) (ECHO" betalen ".Bedrag. "Het gebruik van credit card "; dat paystrategy {}} klasse paybypaypal particuliere paypalemail dollar ="; de functie van de lonen (bedrag = 0) (ECHO "betalen".Bedrag. "Het gebruik van schat ";}} {klas ShoppingCart bedrag = 0; de functie van __construct (bedrag = 0) {% van dit bedrag = > het bedrag van de terugkeer van openbare functies;} {getamount () dollar - >;) project (voor een bedrag van openbare functies = 0) {% van dit bedrag > = bedrag; de openbare functie payamount (}) (als (de hoeveelheid > > = 500) {% betalingen = nieuwe paybycc (} {%); anders betalen = nieuwe paybypaypal ();} $betalen - > betaling (dollar - > bedrag);}} = nieuwe auto kopen. Auto 's (499); $auto > payamount (); ///////499 dollar betalen voor het gebruik van de betaling van nieuwe auto' s = Winkelwagen (501); $auto > payamount (output); ///////501 te betalen met een creditcard, zien we de betaling, ga.Voor de toepassing teway niet transparant.Het is gebaseerd op de parameters, de poort kan passende betaling van transacties, de toevoeging van een nieuwe strategie, als in een later stadium, de behoeften van de gebruikers van de toevoeging van een nieuwe strategie (de nieuwe betaling poort hier) en een aantal andere logica, het is heel eenvoudig, en in deze omstandigheden.We zeggen dat we een nieuwe toe te voegen aan de poort, moneybooker, en om het geld, de auto 's in hoeveelheden van meer dan 500 dollar, maar minder dan 1000 dollar. En het enige wat we moeten doen is het creëren van een nieuwe klasse van de verwezenlijking van de strategie van de interface, we zijn klaar om te gaan. Paybymb paystrategy tot categorie (,, particuliere mbemail dollar = "; de functie van de lonen (bedrag = 0) (ECHO" betalen ".Bedrag. "Booker,}} met geld, en we zijn klaar voor onze nieuwe strategie, we moeten veranderen, is onze heer, payamount, methode.Het moet veranderen als volgt:,, openbare functies payamount () {als (de - > > 500 & & dollar - > de hoeveelheden < 1000) {% betalingen = nieuwe paybymb ();} anders als ($- > het bedrag en De GT; = 500) {% betalen = nieuwe paybycc (} {%); anders betalen = nieuwe paybypaypal ();} $betalen - > betaling (dollar - > bedrag);}, hier kan je zien dat we in, payamount, wijzigingen in de methode van de code van de cliënt, en niet op grond van deze methode, conclusies,,., komt daarom tot de conclusie dat, als we er zijn verschillende manieren van dezelfde taak (in de taal van de software, we hebben meer dan een algoritme voor het uitvoeren van de operatie), moeten we rekening houden met de uitvoering van de strategie.  ,. Met behulp van dit model kunnen we vrijheid toevoegen of schrappenAls gevolg van deze algoritme omgezet en niet transparant zijn voor de toepassing  ,., ik heb mijn best gedaan om een fundamentele en nuttige voorbeelden om aan te tonen dat de strategie, maar als je een andere opmerkingen of vragen, aarzel dan niet om ze in de volgende diervoeders.,



Previous:
Next Page: