180 likes | 315 Views
Fra Mitose til Happy-meal. Innf øring i “Prototype Patterns” og “Builder Patterns”. Gruppe 2 Carl-Erik Herheim Leendert Wienhofen. Olav Dæhli Thomas Julsen Jon-Gunnar Bjørkmo Kjartan Haugen. http://www.cognit.no/leendert/sfteng/presentasjoner/default.htm. Mitose: en kalv blir til.
E N D
Fra Mitose til Happy-meal Innføring i “Prototype Patterns” og “Builder Patterns” Gruppe 2 Carl-Erik Herheim Leendert Wienhofen Olav Dæhli Thomas Julsen Jon-Gunnar Bjørkmo Kjartan Haugen http://www.cognit.no/leendert/sfteng/presentasjoner/default.htm
Mitose: en kalv blir til • Mitose: en celle deler seg i to identiske celler. Dette skjer gjentatte ganger • Celler slår seg sammen blir brukt til forskjellige formål • Samlingen av celler former en kalv http://www.cognit.no/leendert/sfteng/presentasjoner/default.htm
Fra kalv til ku • Kalven har kontinuerlig mitose og vokser til å bli ku • Fenotypen former seg etter miljøets innflytelse http://www.cognit.no/leendert/sfteng/presentasjoner/default.htm
Fra ku til hamburger • Kuen er ”bruksmoden” • Kuen blir fraktet til slakteren og slaktet • Deler av kuen ender opp i en kjøttkvern og blir til hamburgerkjøtt http://www.cognit.no/leendert/sfteng/presentasjoner/default.htm
Fra hamburger til Happy Meal • Hamburgeren blir transportert fra slakteren til McDonalds • Hamburgeren blir brukt som del av en Happy Meal, og pent plassert ved siden av brus, pommes frittes og et leketøy http://www.cognit.no/leendert/sfteng/presentasjoner/default.htm
Hva var poenget? • Det finnes forskjellige ”Design Patterns” • 3 Grupper • Structural Design Patterns • Behavorial Design Patterns • Creational Design Patterns
Creational Design Patterns • Prototype • Make new objects by cloning the objects which you set as prototypes. • Builder • Separates object construction from its representation. • Abstract Factory • Various methods to make various objects various ways. • Factory Method • Methods to make and return components of one object various ways. • Singleton • A class distributes the only instance of itself.
Hva er en ”Prototype Pattern”? • ”Prototype Pattern” sørger for at et objekt kan lage tilpassede (customized) objekter, uten å vite om klassen eller detaljer om hvordan å lage dem. • It works by giving prototypical objects to an object that initiates object creation. The creation initiating object then creates objects by asking the prototypical objects to make copies of themselves. (=mitose)
Når bruker man en ”Prototype Pattern”? • Bruk ”Prototype Pattern” når et system skal være uavhengig av hvordan dets produkter er lagd, satt sammen og representert, og • 1. Når klassene som som skal bli instansiert er spesifisert i run-time; eller • 2. For å unngå å lage et klassehierarki av ’factories’ som er parallell med produktets klassehierarki; eller • 3. Når instanser av en klasse kun kan ha en av få forskjellige ’state’ kombinasjoner
Hvordan ser en ”Prototype Pattern” ut? UML klasse diagram
Brukseksempel ”Prototype Pattern” • Mitose • Farger • Labyrint For Kodeeksempler: http://www.cognit.no/leendert/sfteng/presentasjoner/default.htm
Hva er et ”Builder Pattern”? • Metode for å konstruere komplekse objekter ved å kun spesifisere type og innhold. • Separerer detaljer om objekt -”byggingen” fra klient objektet.
Når bruker man ”Builder Pattern”? • Når en algoritme som lager et komplekst objekt skal være uavhengig av de enkelte delene som utgjør objektet og hvordan de er sammensatt. • Når man vil ha et komplett produkt i motsetning til en samling relaterte deler
Hvordan ser et ”Builder Pattern” ut? UML class diagram
Brukseksempel ”Builder Pattern” • HappyMeal • Tekst konvertering • PC-bygging For Kodeeksempler: http://www.cognit.no/leendert/sfteng/presentasjoner/default.htm
Oppsummering • Fra mitose til Happy meal(metaforisk pedagogikk) • Design Patterns • Prototype Patterns • Builder Patterns
Spørsmål? http://www.cognit.no/leendert/sfteng/presentasjoner/default.htm
Referanser/lenker • http://www.dofactory.com • http://sern.ucalgary.ca/courses/SENG/609.04/W98/hongd/pres2.htm • http://www.google.com • http://www.fluffycat.com/java/patterns.html • http://www.serc.nl/people/florijn/interests/patts.html • http://www.ia.hiof.no/~kyvh/se/b.html