|
|
Iterator opfattet som et designmønster | Her vil vi beskrive Iterator opfattet som et designmønster. Vi følger beskrivelses skabelonen fra Gamma og co. 'Design pattern bog', jf. henvisningen herunder. For nogle forhold beskriver vi faktiske egenskaber af Iterator. For andre forhold (kursiverede) beskriver på et mere overordnet niveau hvad de enkelte dele af dokumentationsskabelonen indeholder |
|
|
| Betegnelsen 'aggregate' klassen hentyder naturligvis til en klasse som aggregerer en række bestanddele. Vi kalder også undertiden en sådan klasse for en Container. Polymorf iteration opnås ved at definere én fælles grænseflade (ala Java interface) for en bred klasse af gennemløb. Derved overlever en klientklasse selv om den underliggende liste og/eller iterator skiftes ud |
|
|
![]() | Strukturdiagram for en iterator, hvor vi anvender generelle begreber i modsætning til listebegreber. Her og i det følgende benytter vi en OMT agtig grafisk notation, ligesom i Design Patterns bogen. Notationen ligner UML, som den kendes fra kurset System Analyse og Design. Vi forklarer notationen i takt med at vi skrider frem. Den stiplede pil fra ConcreteAggregate til ConcreteIterator betyder at ConcreteAggregate har skabt ConcreteIterator |
|
|
|
|
|
|
|
|
Design Patterns bogen, som er refereret ovenfor, er den mest kendt og udbredte bog om mønstre. Men der er også en del andre. En del af materialet i disse noter er tilpasset direkte fra denne bog. |