140 likes | 267 Vues
Prosjektet transparente lag. Composite og tegnende objekter Decorator og gui-kontrollere Factory Method Iterator. Composite. En gruppe elementer oppfører seg som ett Alle adresseres samtidig Hvert element kan respondere individuelt
E N D
Prosjektet transparente lag Composite og tegnende objekter Decorator og gui-kontrollere FactoryMethod Iterator
Composite • En gruppe elementer oppfører seg som ett • Alle adresseres samtidig • Hvert element kan respondere individuelt • Brukes ofte i gui-trær og grupperende tegneprogrammer
Oversikt med pakkediagram • Pakkediagrammer gir god oversikt over hele systemet • easylib er • utvidet for • XML og DOM
Den endelige easylib • Pakken er utvidet tre ganger • Dette gir trening i å lage pakker for gjenbruk
SVG og XML • XML er et generelt språk for applikasjoner • SVG er en spesialisering av XML • Det betyr at SVG er en appliksjon i XML • Java har sterke klasser for XML • Dermed kan Java også lett håndtere SVG • simplediagram kan eksportere standard SVG
SVG • SVG = Scalable Vector Graphics • Språket SVG beskriver vektorgrafikk, interaksjon og animering • SVG kan beskrive avanserte skalerbare visuelle effekter • Simplediagram definerer pakkene svg og xml • De støtter Java for svg
Simplediagram • Simplediagram behandler kompliserte programmeringstemaer • Det kompliserte forenkles med abstraksjoner • De viktigste er tre interface • ISVGDiagram • ISVGFigure • ISVGElement
Abstraksjon for hele diagrammet • Diagrammet kontraktfester to metoder • Domeneklassen Diagram realiserer
Abstraksjon for hver figur • Figurer har tre kontraktfestede metoder • De realiseres av to domeneklasser • Thing • Connection
Abstraksjon for hvert element • Hvert element har tre kontraktmetoder • Tre klasser i domenet realiserer dem
Pakken figure Klassene i pakken figure inneholder mye logikk og strukturer Logikken og strukturene har høy kohesjon med gui-oppgavene Klassene har derfor høy kohesjon De bryter dermed ikke prinsippet for skille mellom gui og logikk Dette skillet gjelder først og fremst gui og domenelogikk
Pakken uml • Pakken uml er en domeneklasse i dette prosjektet • Klassen definerer to-tre ting og en forbindelse fra språket UML • Klassene inneholder logikk og matematiske modeller • Logikken og strukturene har høy kohesjon med gui-oppgavene
Iterator Pattern • Korteste vei mellom actor og usecase? • Usecase er en instans av EllipseElement • EllipseElement bruker Iterator Pattern for å finne relevante punkter • Logikken er basert på interfacet PathIterator
Factory Method Pattern • Instansen av PathIterator bestemmer hvilken metode som skal brukes • Mønsteret er FactoryMethodPattern • Grunnen er at subklassene har avgjort hvilken av Shape-klassene som er instansiert • FMP betyr at en klasse overlater til en subklasse å foreta instansieringen. • FMP brukes ofte i stream- og reader-klasser. • Objektet element produserer det korrekte elementet som implementerer PathIterator. • PathIterator pi = element.getPathIterator();