former for design: indretningsarkitekt mønster

, design mønstre: indretningsarkitekt mønster,,,,, 318,,,,,,,, 20,,,,,,, det cyber - mandag envato tuts + kurser vil blive reduceret til $3.- og' t miss. denne post er en del af en serie kaldet design mønstre i folkesundhedsprogrammet. design mønstre: adapteren patterndesign mønstre: strategien mønster, tidligere i denne serie har vi både   facade og adapter design mønstre i denne serie.ved hjælp af facade, kan vi forenkle store systemer, og ved at gennemføre en adapter, vi kan bo sikkert, mens vi arbejdede med eksterne api - og klasser.nu skal vi til at dække indretningsarkitekt design mønster, der også falder ind under den kategori af strukturelle mønstre.,,, vi kan bruge en indretningsarkitekt mønster, når vi vil blot give nogle ekstra ansvar til vores base klasse.denne konstruktion mønster er et godt alternativ til en underkontraheret ‑ klassificering ved forlængelse af funktioner med nogle ekstra fordele,.,,,,,, hvis du er forvirret, og jeg mener, at vi kan opnå de samme funktioner med en ubåd ‑ klassificerer træk, så lad mig vise dig nogle kode eksempler, som vil fjerne din forvirring og du elsker en indretningsarkitekt mønster.,,, jeg tager et eksempel på en klasse, der er ansvarlig for at skabe indhold i en e - mail.i den næste kode blok, som du kan se, denne gruppe fungerer godt for at skabe e - mail indhold uden ændringer.,,, klasse emailbody (private $header = den e - mail - header; private $fod = "det er e - mail - fods; offentlige $body ="; offentlig funktion loadbody() {% - > krop. = "er det vigtigste e - mail krop. < br />"), ved vi, at julen nærmer sig, og lad os sige, at jeg ønsker at hilse på mine læsere med en besked til min næste nyhedsbrev e - mail.så er jeg nødt til at tilføje en besked på min e - mail, lig med et billede, der ser godt ud.  , for det kan jeg direkte redigere i min e - mail - klasse, som jeg virkelig ikke ønsker at gøre.så jeg kan gennemføre arv til at opnå den samme virkning.   jeg skabe et særskilt barn klasse af de vigtigste e - mail - organ klasse:,, klasse christmasemail udvider emailbody {offentlige funktion loadbody() (moder: loadbody(). $- > krop. = "ekstra indhold til jul < br />";) $christmasemail = nye christmasemail(). $christmasemail - > loadbody(); echo $christmasemail - > organ, så er jeg færdig med min kode, og efter et par dage, jeg vil sende en e - mail til nytår velkommen.vi kan bruge den samme metode, som vi gjorde i julegave.,, klasse newyearemail udvider emailbody {offentlige funktion loadbody() (moder: loadbody(). $- > krop. = "ekstra indhold til nytår < br />"}} $newyearemail = nye newyearemail(). $newyearemail - > loadbody(); echo $newyearemail - > organ, det gik glat uden nogen problemer.lad os sige, at jeg har glemt at hilse på mine gæster for begge gange (jul og nytår), og jeg vil gerne sende en e - mail i både hilsner, uden at ændre en kode i basen klasse.  , dit sind bliver fyldt omgående med følgende spørgsmål: vil undergrupper og arv hjælp her?jeg vil være til fordel for den vej, men vi er nødt til at bruge ekstra /unødvendige kode til at opnå dette.vi kan bruge træk, som gør det muligt for os at gennemføre noget lignende for flere arv.,,, den løsning, det problem, som vi har drøftet i det foregående afsnit, kan løses ved at gennemføre en indretningsarkitekt mønster.  , ifølge wikipedia:,,, en indretningsarkitekt mønster (også kendt som papir, et alternativ, at sammen med adapteren mønster) er et bestemt mønster, der gør det muligt for adfærd skal tilføjes til et enkelt formål, enten statisk eller dynamisk, uden at det berører den opførsel af andre genstande af samme klasse, i ovennævnte afsnit har vi set, at vi kan udvide elementer /adfærd ved hjælp af en underklasse, men når det kommer til tilføjelse af flere elementer /opførsel, den bliver lang og kompleks.og det er her, vi skal bruge en indretningsarkitekt mønster.,,, - interface, grænseflade emailbody {offentlige funktion loadbody();}, er det et enkelt grænseflade for at sikre, at visse klasse skal gennemføre de nødvendige metoder.  , vigtigste e - mail - klasse, klasse e - mail gennemfører emailbody {offentlige funktion loadbody() (echo - "er de vigtigste e - mail krop. < br />"), er dette det vigtigste klasse, som forårsager misligholdelse af en e - mail, som jeg bruger til at sende e - mails.hvad jeg har brug for, er imidlertid at ændre organ indhold baseret på en gang, men uden at ændre de vigtigste e - mail - klasse.,, vigtigste indretningsarkitekt, abstrakt klasse, emailbodydecorator gennemfører emailbody (beskyttede $emailbody; offentlig funktion __construct (emailbody $emailbody) ($- > emailbody = $emailbody;} abstrakt offentlig funktion loadbody();), er det vores vigtigste indretningsarkitekt klasse, der har en henvisning til vores vigtigste e - mail - klasse og ændrer sin adfærd efter behov.her har vi defineret en abstrakt måde,  , loadbody,, som afrika indretningsarkitekt skal gennemføre for at ændre adfærd.,, sub - indretningsarkitekt, klasse christmasemailbody udvider emailbodydecorator {offentlige funktion loadbody() (echo, det er ekstra indhold til jul < br /> "$- > emailbody - > loadbody();}} klasse newyearemailbody udvider emailbodydecorator {offentlige funktion loadbody() (echo, det er ekstra indhold til nytår. < br />" $- > emailbody - > loadbody();}}, her har vi oprettet to undergrupper af de vigtigste indretningsarkitekt, der faktisk udfører en ændring af adfærd, for vores vigtigste e - mail - klasse.,, at pakke det alle sammen, vi har skabt alle de elementer, der er nødvendige.alt vi skal gøre, er at bruge vores kode og nyd.,, grænseflade emailbody {offentlige funktion loadbody();} klasse e - mail gennemfører emailbody {offentlige funktion loadbody() (echo "er det vigtigste e - mail krop. < br />"}} abstrakt klasse, emailbodydecorator gennemfører emailbody (beskyttede $emailbody; offentlig funktion __construct (emailbody $emailbody) ($- > emailbody = $emailbody;} abstrakt offentlig funktion loadbody();} klasse christmasemailbody udvider emailbodydecorator {offentlige funktion loadbody() (echo, det er ekstra indhold til jul < br /> "$- > emailbody - > loadbody();}} klasse newyearemailbody udvider emailbodydecorator {offentlige funktion belastningbody() (echo, det er ekstra indhold til nytår. < br /> "$- > emailbody - > loadbody();}}, nu vil vi bruge denne indretningsarkitekt klasse på forskellige måder, som er nødvendig: /* * normale e - mail * $e - mail = nye email(). $e - mail - > loadbody(); //produktion er det vigtigste - organ./* * e - mail til jul, vær hilset * $e - mail = nye email(). $e - mail = nye christmasemailbody ($e - mail); $e - mail - > loadbody(); //produktion er det ekstra indhold til jul er det vigtigste - organ./* * e - mail til nytår velkommen * $e - mail = nye email(). $e - mail = nye newyearemailbody ($e - mail); $e - mail - > loadbody(); //produktion er det ekstra indhold til nytår.dette er de vigtigste e - mail - organ./* * e - mail til jul og nytår velkommen * $e - mail = nye email(). $e - mail = nye christmasemailbody ($e - mail); $e - mail = nye newyearemailbody ($e - mail); $e - mail - > loadbody(); //produktion er det ekstra indhold til nytår.det er ekstra indhold til jul er det vigtigste - organ, kan vi se, at vi nu har ændret liget af en e - mail, uden at ændre de vigtigste e - mail - klasse, konkluderes, at hver ansøgning har vi behov for en eller anden form for ændring og /eller forbedringer på ensartede mellemrum.i sådanne tilfælde kan vi gennemføre en indretningsarkitekt design - og det i sidste ende vil forbedre kvaliteten og sikre, at vores kode kode mere elastiske, var det mit forsøg på at forklare dig om en indretningsarkitekt mønster, men hvis du har yderligere bemærkninger eller spørgsmål, så tøv ikke med at tilføje dem i foder   nedenfor.



Previous:
Next Page: