Ontwerp -: decorateurs

, ontwerp -: decorateurs,,,,,,,,,, 318, 20 aandelen,,,,,,,, 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: het patroon van de adaptor ontwerp - strategie patroon, in deze reeks we over   façade en adapter in deze reeks ontwerp - model.Het gebruik van een vereenvoudigd systeem, kunnen we, door de uitvoering van de adaptor en kunnen we veilig te houden, en de externe interface en soort werk.Nu moeten we de decoratie van de ontwerp -, die ook onder de categorie van structuur.,,, we willen gewoon voor wat extra verantwoordelijkheden, onze klas met de decoratie van mode.Dit ontwerp is een - indeling en wat extra voordelen van de uitbreiding van de taken van de kenmerken van een goede keuze.,,, van de problemen, als je het niet weet, dat we kunnen gebruiken - - de indeling van de kenmerken en dezelfde functie vervullen, dan laat ik je zien dat een voorbeeld zou het schrappen van je. Laat je liefde in het patroon.,,, ik ga een verantwoordelijk voor de inhoud van e - mails die een voorbeeld van de klas.In het kader van een deel van de code, zoals je kan zien, deze functie, zonder enige wijziging van de inhoud van die e - mail goed.,,, klasse emailbody {particuliere $hoofd = "is dat de post hoofd"; particuliere dollar = "dat is de e - mail meter; het publiek lichaam = dollar"; de functie van loadbody () {% dit - > lichaam. = "dit is de belangrijkste post tekst. < BR />";}}, dat weten we, het is Kerstmis, laat ik zeggen, ik ga voor m 'n volgende mededeling een e - mail aan m' n lezers.Dus ik moet nog een bericht op mijn e - mail lichaam beeld ziet er goed uit.  , dit kan ik in mijn e - mail soort redacteur, ik wil het echt niet doen.Dus ik kan de erfenis van de uitvoering om hetzelfde effect te bereiken.   ik de oprichting van een afzonderlijk orgaan klasse, de heer e - mail: uitbreiding, klasse christmasemail emailbody {openbare functie loadbody () {ouders: loadbody (); de dollar - > lichaam. = "toe te voegen aan de inhoud van de < BR />";}} $christmasemail = nieuwe christmasemail (); christmasemail dollar - > loadbody (); de ECHO $christmasemail - > lijk;,, dus nam ik de code, en binnen een paar dagen ik wil nieuwjaars groeten van e - mail.We gebruiken dezelfde methode als we doen met kerst, newyearemail uitbreiding, klasse. Emailbody {openbare functie loadbody () {ouders: loadbody (); de dollar - > lichaam. = "toe te voegen aan de inhoud van het nieuwe jaar < BR />";}} $newyearemail = nieuwe newyearemail (); newyearemail dollar - > loadbody (); de ECHO $newyearemail - > lijk;,, het is goed, geen probleem meer.Laten we zeggen dat ik vergat te groeten en ik hebben de bezoekers gelegenheden (Kerstmis en Nieuwjaar), wil ik een e - mail sturen op basis van een groet, geen wijziging van de code.  , je hart is vol, met de volgende vraag: zal onmiddellijk - en erfenis te helpen?Ik zal voor dit, maar we moeten het gebruik van aanvullende /code niet nodig om dit doel te bereiken.We kunnen gebruik maken van de kenmerken, die ons in staat stelt dat vergelijkbaar is met dat van meerdere erven.,,,.,, dit is waar we op kunnen door het inrichten van een hoofdstuk over de wijze om dit probleem op te lossen.   volgens Wikipedia,,,,,,, decorateurs (ook bekend Als pakket, een andere naam en het patroon van de adaptor delen) is een ontwerp - toegestane handelingen worden toegevoegd aan een enkel object, ongeacht de statische of dynamische, niet van dezelfde klasse van invloed zijn op andere object gedrag. In het bovenste deel, en we hebben gezien, kunnen we de uitbreiding van het gebruik van een subgroep van functionele /gedrag, maar als het gaat om de toevoeging van multifunctionele /gedrag, werd langdurig en ingewikkeld.Dit is moeten we gebruik maken van het patroon.,,, de interface emailbody {openbare functie loadbody ();}, is dit een eenvoudige interface om ervoor te zorgen dat sommige soorten moeten te realiseren die nodig is om de belangrijkste post methode.  ,,, op het niveau van de tenuitvoerlegging van e - mail, emailbody {openbare functie loadbody () {'"het belangrijkste is de e - mail tekst. < BR />";}}, dat een van de belangrijkste lessen die bij het lichaam van een e - mail voor algemeen gebruik, ik stuur een e - mail.Wat ik nodig heb, maar in sommige gevallen is gewijzigd, op basis van de inhoud van het lichaam maar verandert niet de belangrijkste post.,, decoratie, abstracte categorie bereikt, emailbodydecorator emailbody (bescherming van emailbody dollar; de functie van __construct (emailbody emailbody dollar) {% dit > emailbody = $emailbody; openbare functie van abstracte loadbody (});}, dit is onze belangrijkste decoratie, dit is onze belangrijkste boodschap de verwijzing naar categorie, de verandering in zijn gedrag nodig.Hier, het vaststellen van een abstracte methode,  , loadbody, decoratie, nodig is voor de tenuitvoerlegging van een verandering in het gedrag van kinderen uit te breiden.,,, decoratie, christmasemailbody emailbodydecorator {openbare functie loadbody () {'"dit is Kerstmis < extra inhoud; BR />"; de dollar - > emailbody - > loadbody (); de uitbreiding van emailbodydecorator {}} klasse newyearemailbody openbare functie loadbody () {' "het is een nieuw jaar extra inhoud. < BR />"; de dollar - > emailbody - > loadbody ();}}, creëren we, hier de voornaamste inrichting van twee soorten in feite, dat uitvoering van de verandering van het gedrag van de post, het pakje. En samen, we hebben alle noodzakelijke elementen.Alles wat we moeten doen is het gebruik van onze code en geniet. Emailbody {openbare functies, interfaces, loadbody (E - mail); de verwezenlijking van emailbody {}) loadbody (openbare functies (ECHO "dit is de belangrijkste post tekst. < BR />";}} abstracte emailbodydecorator dat Bescherming van emailbody {emailbody dollar; de functie van __construct (emailbody emailbody dollar) {% dit > emailbody = $emailbody openbare functies;} abstracte loadbody (); de uitbreiding van de emailbodydecorator {} klasse christmasemailbody loadbody (functie) (ECHO "dit is Kerstmis < extra inhoud; BR />"; emailbody - dollar - > > loadbody (); de uitbreiding van emailbodydecorator {}} klasse newyearemailbody openbare functie van belastingHet (de) {'"het is een nieuw jaar extra inhoud. < BR />"; de dollar - > emailbody - > loadbody ();}}, nu zullen we op verschillende manieren moet deze inrichting van klasse:,, /* * * * * * * * * * * * * * /dollar nieuwe normale e - mail = E - (); $per e - mail > loadbody (); de produktie van deze is de belangrijkste ///////e - mail./* e - mail en kerst * element /e - mail = nieuwe e - mail (); e - mail = nieuwe christmasemailbody dollar (USD per e - mail); $per e - mail >; ///////loadbody () produktie van deze is extra inhoud, dit is Een van de belangrijkste van de e - mail van Kerstmis.* * * * * * * * * * * * * * * * * * * * *) per e - mail /jaar /e - mail = nieuwe e - mail (); e - mail = nieuwe newyearemailbody dollar (USD per e - mail); $per e - mail > ///////loadbody (); de produktie van, het is een nieuw jaar extra inhoud.Dit is de belangrijkste boodschap./* * * * * * * * * * * * * * de e - mail met Kerstmis en nieuwjaar wensen * element /e - mail = nieuwe e - mail (); e - mail = nieuwe christmasemailbody dollar (USD per e - mail); $per e - mail = nieuwe newyearemailbody ($per E - mail); $per e - mail > ///////loadbody (); de produktie van, het is een nieuw jaar extra inhoud.Dit is de inhoud van deze extra, Kerstmis is de belangrijkste post betreft, zien we dat we veranderd zijn, nu het lichaam van e - mail, zonder wijziging van de e - mail, en is tot de conclusie gekomen dat elke aanvraag, alles wat we nodig hebben is een wijziging en /of wijziging in de periode in De eenheid.Dus, in dit geval kunnen we dat in het ontwerp. Het zal uiteindelijk, verbetering van de kwaliteit van de code, zodat we de code nog uit te breiden.,, dit is wat ik heb je iets uitleggen over het patroon, maar als je een andere opmerkingen of vragen, aarzel niet, voor de volgende diervoeders,  .



Previous:
Next Page: