31.12.2014 Views

Paskaitų konspektai - Matematikos ir Informatikos fakultetas ...

Paskaitų konspektai - Matematikos ir Informatikos fakultetas ...

Paskaitų konspektai - Matematikos ir Informatikos fakultetas ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Projektavimo šablonai (design patterns)<br />

Erich Gamma, Richard Helm, Raph Johnson, John Vlissides (GOF - Gang Of<br />

Four): Design Patterns; Elements of Reusable Object-Oriented Software; Addison<br />

Wesley Longman, Inc., 1995<br />

Objektiškai orientuotų (OO) programų kūrimas yra sunkus uždavinys, o daug kartų<br />

panaudojamų programinių komponentų kūrimas - dar sunkesnis. Patyrę OO<br />

projektuotojai žino, kad lankstaus <strong>ir</strong> ateityje naudingo dizaino sukūrimas iš pat p<strong>ir</strong>mo<br />

karto yra sud÷tingas, o dažniausiai <strong>ir</strong> neįmanomas dalykas. Ir visgi ekspertai<br />

sumeistrauja puikius programų modelius. Ką gi žino ekspertai, ko nežinotu naujokai<br />

Vienas dalykas, kurio tikrai nedaro ekspertai, yra programų kūrimas nuo nulio. Jie<br />

verčiau sus<strong>ir</strong>anda jau įgyvendintus sprendimus, kurie puikiai veik÷ praeityje, <strong>ir</strong>, labai<br />

tik÷tina, toliau puikiai veiks. Projektavimo šablonai - tai būdas nuosekliai<br />

dokumentuoti projektuotojų pat<strong>ir</strong>tį, t.y. programuotojų folklorą - legendas <strong>ir</strong><br />

padavimus. Prie kiekvieno projektavimo šablono, be kitų dalykų, yra pažymima:<br />

• problema, kurią norime išspręsti,<br />

• sprendimas, susidedantis iš keletos klasių <strong>ir</strong> jų tarpusavio sąveikos,<br />

• sprendimo pritaikymo pas÷km÷s, t.y. jo privalumai <strong>ir</strong> trūkumai.<br />

Autorių kolektyvas, ketverto gauja, sudar÷ 23-jų projektavimo šablonų katalogą.<br />

Kiekvienas šablonas turi pavadinimą su užuomina apie jo pask<strong>ir</strong>tį. Šiame kurse mes<br />

jau paliet÷me mažiausiai tris projektvimo šablonus:<br />

• Singleton - užtikrina, jog klas÷ tur÷s tik vieną egzempliorių, kurį galima pasiekti<br />

globaliai<br />

• Composite - komponuoja objektus į medžio pavidalo hierarchijas; pavieniai <strong>ir</strong><br />

sud÷tiniai objektai traktuojami vienodai<br />

• Iterator - leidžia paeiliui perb÷gti konteinerio elementus, kartu paslepiant vidinę<br />

konteinerio realizaciją<br />

Composite šablonas yra vienas populiariausių. Grafin÷s langų sistemos yra puikus<br />

panaudojimo pavyzdys: langai susideda iš grafinių komponentų, kurių kiekvienas<br />

savo ruožtu gali susid÷ti iš smulkesnių <strong>ir</strong> t.t.. Žemiau pateikta apibendrinta<br />

Composite šablono klasių hierarchija:<br />

141

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!