Object-Oriented Design Patterns selitti, käyttämällä käytännön esimerkkejä
käyttäytyminen
Nämä tyyppinen kuvio on huolissaan viestinnän kohteiden välillä. Useimmissa tapauksissa riippuvuudet kommunikoida esineitä vähennetään näiden mallien, mikä johtaa parempaan ohjelmistosuunnitteluun.
Vastuullisuusketju
Tämä kuvio luo vastaanottimen objektien ketjun pyyntöä varten. Se estää pyynnön lähettäjän kytkemisen vastaanottimeen ja antaa useille kohteille mahdollisuuden käsitellä pyyntöä. Vastaanottavat esineet liittyvät toisiinsa., Alla olevassa esimerkissä rakennetaan välikappaleketju. Pyyntö, joka sisältää sähköpostin ja salasanan, lähetetään ketjussa. Uusia elementtejä ketjuun voi helposti lisätä.
Komento
komento kuvio esine käytetään kiteyttää kaikki tarvittavat tiedot suorittaa toimia tai käynnistää tapahtuman myöhemmin. Kuten alla on esitetty, ActionOpen määrittelee toiminnan sekä kohteen, jolla toiminta toteutetaan., Lisätietoja ei tarvita ja toinen kohde, tässä valikossa, voi suorittaa toiminnon.
Tulkki
Tulkki kuvio määrittelee edustus kielioppi kieli ja tarjoaa mahdollisuuden tulkita lauseita kielellä. Koodin pätkä alla Plus esine voi tulkita ”operand1 + operand2” ja tietää, mitä tehdä sen kanssa ilme. Enemmän tulkkien voidaan lisätä muuttamatta rakennetta liikaa. Tämän jälkeen jäsennin käyttää tulkkeja ymmärtääkseen syötteen.,
Iterator
Iteraattori on tapana kulkea kontti tietojen pääsy säiliöön on elementtejä ilman, että täytyy tietää, taustalla rakenne. Myös uusia poikittaisvariantteja voidaan lisätä muuttamatta objektien rajapintaa tai itse tietorakennetta.
alla kuvattu kanavanippu pääsee kanaville peräkkäisellä tavalla. RemoteControl-kohteen ei tarvitse välittää siitä, miten kanavat järjestetään. Esimerkiksi Satunnaiskannelsurferin voi lisätä ilman suurempia ongelmia.,
Sovittelijan
Jos kaksi tai useampia objekteja on tehtävä yhteistyötä, Sovittelija kuvio voidaan soveltaa. Etenkin, jos esineet eivät tunne toisiaan, jos ne eivät saisi olla tiukasti yhdistettynä, tai niiden vuorovaikutus on monimutkaista, tämä malli voi auttaa.
alla olevassa esimerkissä KÄYTTÖLIITTYMÄELEMENTTIEN välillä tarvitaan jonkin verran vuorovaikutusta. Tämä vuorovaikutus tapahtuu Autentikaatiodialogina välittäjänä. Näin vuorovaikutusta ei määritellä yhdessä osallistuvasta esineestä, vaan se puretaan välittäjään.,
Memento
Memento kuvio on hyödyllistä, jos tietty tila esine tulee tallentaa myöhempää käyttöä varten. Näin ollen se ei riko kapselointia kyseisen objektin täytäntöönpanotiedot. Sitä voidaan käyttää esimerkiksi kumomekanismin täytäntöönpanoon.
Tarkkailija
tarkkailija tarkkailija kuvio esineitä tilata havaittavissa kohde voidaan ilmoittaa joka kerta havaittavissa muutoksia sen tiedot., Tarkkailijat ovat löyhästi kytkettyjä, ja ne voidaan lisätä ja poistaa ajonaikaisina.
sen suhteen, miten tarkkailija lopulta saa tietoja havaittavissa, on olemassa kaksi vaihtoehtoa: push ja pull. Alla oleva koodi näyttää vetää variantti, joka on joustavampi, koska tässä tapauksessa havaittavissa ei tarvitse tietää, miten tarkkailija haluaa saada tiedot, mutta tarkkailija voi noutaa tiedot kuin halusi.
Tilaan
Valtion kuvion avulla esine muuttaa käyttäytymistään, kun sen sisäinen tila muuttuu., Tämä kuvio on samanlainen kuin strategiakuvio, mutta tässä tapauksessa päätetään sisäisesti, miten esineet käyttäytyvät. Tämä on erityisen hyödyllistä, jos monimutkaiset olosuhteet määrittävät, miten objektin pitäisi käyttäytyä. Uusia valtioita voidaan lisätä olemassa olevista valtioista riippumatta.
Strategia
yhteydessä Strategia kuvio on olemassa useita vaihtoehtoja yksi algoritmi, jossa yksi vaihtoehto on valittu suoritettavaksi suorituksen.,
alla olevassa esimerkissä Kompressori esinettä voidaan käyttää kahdella eri algoritmeja määritelty run-time. Menetelmä, joka suorittaa toiminnon (createArchive) sitten sovelletaan valittua algoritmia.
Template
Malli malli määrittelee rakenne sub-luokat, jotka vaiheet algoritmin ja niiden järjestys on määritelty. Näin varmistetaan, että alaluokat noudattavat täsmälleen samoja vaiheita ja antavat paremman yleiskuvan ja johdonmukaisuuden., Sen avulla voidaan myös määritellä oletustoteutukset portaille, jotka voidaan ohittaa alaluokilla.
Kuten alla kaikki jäsentimiä perivät DataParser seuraa samat vaiheet, kun parse() suoritetaan. Näin varmistetaan esimerkiksi se, että kaikki parserit sulkevat tiedostot ja kirjaavat tilan.
Vieras
Vierailija malli mahdollistaa soveltaa yhden tai useamman operaation joukko esineitä ajon aikana ilman toimintaa tiiviisti yhdessä objektin rakenne.,
Tämä on sinun toteuttaa double dispatch, jossa funktio soittaa eri konkreettisia toimintoja riippuu run-time tyyppi kaksi objektia. Alla olevassa esimerkissä toisaalta puolella on reitti elementtejä ja toisaalta puolella kävijä esineitä, jotka jokainen suorittaa eri toimintoja reitillä elementtejä. Jos jatkossa kävijöitä on enemmän, reittielementin ei tarvitse muuttua.