Exempel. En klass för att inkapsla funktionen hos ett tangentbord. Nu kan många objekt skapas av klassen

Relevanta dokument
Systemdesign fortsättningskurs

Design mönster. n n n n n n. Command Active object Template method Strategy Facade Mediator

Återanvändning. Två mekanismer. Nedärvning av egenskaper (inheritance) Objekt komposition

Mönster. n n n n n n n n n n. Singleton Monostate Null object Factory Composite Observer Abstract server Adapter Bridge Proxy

Mönster. n n n n n. Visitor Decorator Extension Object State Taskmaster

Subsystem. Klasser är ett bra sätt att organisera små system. Klasser är för små enheter för att organisera stora system

Kontrakt baserad design. Design by contract

Vi har... Diskuterat olika objektorienterade mekanismer. Ha också tagit upp några krav på hur dom här mekanismerna ska användas

Databaser - Design och programmering. Programutveckling. Programdesign, databasdesign. Kravspecifikation. ER-modellen. Begrepps-modellering

Webprogrammering och databaser. Begrepps-modellering. Exempel: universitetsstudier Kravspec. ER-modellen. Exempel: kravspec forts:

Databaser - Design och programmering. Databasdesign. Kravspecifikation. Begrepps-modellering. Design processen. ER-modellering

Föreläsningar 7,8 sept 24, sept 26 v 39). delvis DD Chapter 6.

Egna funktioner. Vad är sin? sin är namnet på en av många inbyggda funktioner i Ada (och den återfinns i paketet Ada.Numerics.Elementary_Functions)

MS-A0409 Grundkurs i diskret matematik Sammanfattning, del I

Datastrukturer och algoritmer

Visst kan man faktorisera x 4 + 1

Induktion LCB Rekursion och induktion; enkla fall. Ersätter Grimaldi 4.1

Tommy Färnqvist, IDA, Linköpings universitet

Universitetet: ER-diagram e-namn

Analys av algoritmer. Beräkningsbar/hanterbar. Stora Ordo. O(definition) Datastrukturer och algoritmer. Varför analysera algoritmer?

RESTARITMETIKER. Avsnitt 4. När man adderar eller multiplicerar två tal som t ex

1. Test av anpassning.

Anmärkning: I några böcker använder man följande beteckning ]a,b[, [a,b[ och ]a,b] för (a,b), [a,b) och (a,b].

Datorövning 2 Fördelningar inom säkerhetsanalys

DEL I. Matematiska Institutionen KTH

Universitetet: ER-diagram e-namn

Föreläsning G04: Surveymetodik

ISO ISO Guidance on social responsibility. Marknaden förändras snabbt. En standard om socialt ansvarstagande

Förfrågan till Klockarens redaktörer

Databaser - Design och programmering. Databasdesign. Funktioner. Relationsmodellen. Relationsmodellen. Funktion = avbildning (mappning) Y=X 2

Genomsnittligt sökdjup i binära sökträd

Föreläsning 10: Kombinatorik

Remiss Remissvar lämnas i kolumnen Tillstyrkes term och Tillstyrkes def(inition) och eventuella synpunkter skrivs i kolumnen Synpunkter.

Operativsystem - Baklås

Datorövning 2 Fördelningar inom säkerhetsanalys

Utlandskyrkans krisberedskap

Klient/server. Översikt. Lektion 1: Webbtekniker från Microsoft. Webbteknik från Microsoft. Klient/server. Designmönster. Utrullning.

Mätbar vetskap om nuläget och tydliga målbilder om framtiden. Genomför en INDICATOR självvärdering och nulägesanalys inom tre veckor

Designmönster, introduktion. Vad är det? Varför skall man använda mönster?

Lösningar och kommentarer till uppgifter i 1.1

Översikt. Modern C++ Generisk programmering vs OOP. En titt i backspegeln... Generisk programmering. Objektorienterad programmering.

Statistisk analys. Vilka slutsatser kan dras om populationen med resultatet i stickprovet som grund? Hur säkra uttalande kan göras om resultatet?

Kompletterande kurslitteratur om serier

Kollektivt bindande styre på global nivå

Akronymer. CD5130 OOP, fk. Mjukvarumönster. Mjukvarumönster. Mjukvarumönster, forts. Mjukvarumönster, forts

SveTys. Affärskultur i Tyskland. Vad är det? Och vad ska jag tänka på?

Duo HOME Duo OFFICE. Programmerings manual SE

SANNOLIKHETER. Exempel. ( Tärningskast) Vi har sex möjliga utfall 1, 2, 3, 4, 5 och 6. Därför är utfallsrummet Ω = {1, 2, 3, 4, 5,6}.

z Teori z Hypotesgenerering z Observation (empirisk test) z Bara sanningen : Inga falska teser z Hela sanningen : Täcker alla sanna teser

. Mängden av alla möjliga tillstånd E k kallas tillståndsrummet.

Örserumsviken. Förorenade områden Årsredovisning. Ansvar för sanering av förorenade områden. Årsredovisningslagen och god redovisningssed

Plattformshissar från Cibes Lift för alla byggnader

Räkning med potensserier

Armin Halilovic: EXTRA ÖVNINGAR

PROMEMORIA. 01.JI^ Sida. c:\managemennits\publickprojekt\ny plattform och arkitektur\it plan IT strategi\it-strategi.doc.

REGULJÄRA SPRÅK (8p + 6p) 1. DFA och reguljära uttryck (6 p) Problem. För följande NFA över alfabetet {0,1}:

Extrem prestanda Nu utan BPA UPPLEV DEN FANTASTISKA STYRKAN HOS VÅRA BPA-FRIA PRODUKTER

Handbok i materialstyrning - Del F Prognostisering

Bo Andersson, IF Metall, Sven Bergström, LO, Jörgen Eriksson, Byggnads, Björn Hammar, Teknikföretagen, Björn Samuelson, Sveriges Byggindustrier

Stat. teori gk, ht 2006, JW F13 HYPOTESPRÖVNING (NCT ) Ordlista till NCT

Sannolikheten. met. A 3 = {2, 4, 6 }, 1 av 11

Parsningsalgoritmer. Parsningsalgoritmer: inledning. OH-serie 1: introduktion. Parsningalgoritmer I. Algoritmer. Vad är parsning? Vad är en algoritm?

Samtal med Karl-Erik Nilsson

Sannolikhetslära. c 2015 Eric Järpe Högskolan i Halmstad

Digital pedagogik en naturlig del av framtidens skola!

n Marknadens minsta och mest robusta FRAinstrument n Marknadens högsta prestanda och användande n Uppfyller alla internationella standarder för

IAB Sverige Juni 2017

Kontextfri grammatik (CFG)

Vad är det okända som efterfrågas? Vilka data är givna? Vilka är villkoren?

Hamnbanan Göteborg Dubbelspår Eriksbergsmotet - Pölsebobangården

b 1 och har för olika värden på den reella konstanten a.

Borel-Cantellis sats och stora talens lag

ENDIMENSIONELL ANALYS B1 FÖRELÄSNING VI. Föreläsning VI. Mikael P. Sundqvist

Digital signalbehandling Alternativa sätt att se på faltning

c n x n, där c 0, c 1, c 2,... är givna (reella eller n=0 c n x n n=0 absolutkonvergent om x < R divergent om x > R n n lim = 1 R.

1. Hur gammalt är ditt barn?

MS-A0409 Grundkurs i diskret matematik I

Sökplats byggande processer, handböcker och rutinbeskrivning

x 1 x 2 x 3 x 4 x 5 x 6 HL Z x x x

IAB Sverige Juni 2017

Introduktion till statistik för statsvetare

H1009, Introduktionskurs i matematik Armin Halilovic POLYNOM, POLYNOMDIVISION, ALGEBRAISKA EKVATIONER, PARTIALBRÅKSUPPDELNING. vara ett polynom där a

Linjär Algebra (lp 1, 2016) Lösningar till skrivuppgiften Julia Brandes

Applikationen kan endast användas av enskilda användare med förtroenderapportering.

Innehållsförteckning

Fakta om plast i havet

Hisslösningar från Cibes Lift för alla byggnader

Sydkraft Nät AB, Tekniskt Meddelande för Jordningsverktyg : Dimensionering, kontroll och besiktning

Bilaga 1 Formelsamling

Lärarhandledning Att bli kvitt virus och snuva - När Lisa blev av med förkylningen

Familje- juridik Här är dina rättigheter. Bostad& fastighet. Sambo eller gift? Sambo eller gift? Privata Affärers serie om. Del 3

Leica Lino. Noggranna, självavvägande punkt- och linjelasers

Så här kommer byggherren och entreprenören överens om energianvändningen

Designmönster/Design patterns

Operativsystem - Processkommunikation

Cartesisk produkt. Multiplikationsprincipen Ï Ï Ï

Vikingen FutureLook. Delphi Finansanalys AB

För rörformiga instrument, slangar och liknande krävs speciella insatser för genomspolning för att få ett fullgott resultat.

Vägen till energiklassad personal. Kurskatalog Fastighetsautomation.

Innehåll Grafräknaren och diskret matematik...1 Vad handlar diskret matematik om?...1 Permutationer och kombinationer...3 Något om heltalsräkning...

Transkript:

Desigmöster

Exempel E klass för att ikapsla fuktioe hos ett tagetbord E applikatio aväder edast ett tagetbord public class Keyboard{... public char getcurretchar(){...}... } Nu ka måga objekt skapas av klasse Edast ett objekt får skapas

Exempel (forts.) E mycket dålig lösig Objekt sys edast där de skapades Omöjligt för adra att få refereser till det Bättre om objektet kude ås av alla som behöver det public class Keyboard{ static private it cout=0; public Keyboard(){ if(cout>0) throw ew SigletoExceptio(); cout++;... }... public char getcurretchar(){...}... }

Exempel (forts.) Gör alla metoder och variabler static Iga objekt skapas Iitieras alltid också om det ite aväds Ka ite aväda ärvig, implemeterig av grässitt Ka ite skickas som objekt referes Iformatio som behövs för iitialiserige kaske ite fis tillgäglig då programmet startar public class Keyboard{... public static char getcurretchar(){...}... }

Exempel (forts.) Bättre lösig Ärvig och grässitt fukar Fortfarade samma iitialiserigsproblem som föregåede lösig Avädig: public class Keyboard{ private static Keyboard theoe= ew Keyboard(); public static Keyboard getistace(){ retur theoe; } } private Keyboard(){... }... public char getcurretchar(){...}... Keyboard.getIstace().getCurretChar();

Exempel forts De bästa lösige public class Keyboard{ private static Keyboard theoe=ull; Garaterat att edast ett objekt skapas Objektet skapas edast vid behov Har fortfarade problem med multitrådade program } public static Keyboard getistace(){ if ( theoe==ull ) theoe=ew Keyboard(); retur theoe; } private Keyboard(){... }... public char getcurretchar(){...}...

Exempel (forts.) Aropet till de tidigare versioe av getistace fugerar ite ödvädigtvis korrekt då det fis flera trådar Exemplet bredvid löser problemet Är lågsamt då varje arop sykroiseras public static sychroized Keyboard getistace(){ }... } if ( theoe==ull ) theoe=ew Keyboard(); retur theoe;

Exempel (forts.) Behöver bara sykroisera första aropet till getistace Double-checked lockig Bara första arope sykroiseras Bästa lösige för multitrådade program public static Keyboard getistace(){ if ( theoe==ull ){ sychroized(keyboard.class){ if ( theoe==ull ) theoe=ew Keyboard(); } } retur theoe; }... }

Exempel - sammafattig Problemet verkade ekelt Me det visar sej fias ovätat måga problem Det här möstret för att tillverka edast ett objekt ka avädas också för aat ä Keyboard klasse i exemplet Att garatera att det fis bara e istas av ett objekt är ett mycket valigt problem Sigleto desigmöstret

Desig möster Ett möster är e möjlige dold kuskap om hur som borde göras explicit Välkäda iom adra igejörsveteskaper Ett mycket avädbart kocept iom programmerig Först systematiskt udersökt iom arkitektur C. Alexader et. al. A patter laguage: Tows, Buildigs, Costructio, 1977 C. Alexader. The timeless way of buildig, 1979

Desigmöster iom arkitektur Alexader studerade om det fis objektiv kvalitet geom att observera byggader, städer, gator, trädgårdar och parker som byggts av mäskor Kostruktioer som har hög kvalitet har ågot gemesamt Strukturer är olika, också om de var till för att lösa likade problem Strukturer ka ite separeras frå probleme de försöker lösa Jämförde olika strukturer som gav lösigar av hög kvalitet för samma problem. Gemesamma egeskaper hos strukturera bildar ett möster

Alexaders möster Lösigar till problem med kotext 253 möster som behadlar område, städer, trasport, rum belysig, etc. Ett geerativt språk för möster Varje möster defiierar ett delproblem, som seda löses med adra möster

Alexaders möster Each patter describes a problem which occurs over ad over agai i our eviromet, ad the describes the core of a solutio to that problem, i such a way that you ca use this solutio a millio times over, without doig the same thig twice C. Alexader, The timeless way of buildigs, 1979 Ett möster är e tredelad regel som ger e relatio mella e kotext, problem och lösig

Desigmöster i programmerig GoF boke: Möster är beskrivigar av kommuicerade objekt och klasser som apassas till att lösa ett geerellt desig problem i e viss kotext Ett desigmöster amger, abstraherar och idetifierar yckel aspektera i e gemesam desigstruktur som är avädbar för att skapa återavädbara objektorieterade desiger.

Desig möster i programmerig Återavädbara lösigar till geerella problem Möster fågar prövade lösigar till olika problem Likar hadböcker iom måga adra område Möster ka tillämpas på ya situatioer Grudläggade strukture de samma, me detaljer och sättet som möstret aväds ka variera

Defiitio av möster Ett geerell lösig till ett ofta förekommade problem i e give kotext Geerell lösig Ite specifik för språk, programmerigsomgivig, etc. Beskrivs i ett semiformellt dokumet Ofta förekommade Måste vara ett valigt problem Arkitektur/desig problem Tillämpas på arkitektur eller detaljerad desig ivå i e give kotext Problemet existerar i e omgivig som ställer vissa krav

Varför desigmöster Gör (möjlige dold) kuskap explicit Lära sej av bra desig ite av sia misstag Ka avädas för att dokumetera desige Namger och gör strukture explicit på e hög ivå som ite direkt stöds av programmerigsspråket Kommuikatio och teamwork Ka avädas som byggstear i programarkitekture Möster är avädbara för att beskriva icke fuktioella krav hos programmet Ge e mera högivå perspektiv på problemet som ska lösas

Dokumeterig av möster Gamma et al. (GoF) aväder e stadard metod för att beskriva möster Gör det lättare att förstå möstre De flesta böcker aväder samma metod. Geom att dokumetera möstre så blir kuskape explicit Möster fis samlade i olika mösterkataloger Nödvädigt att möstre preseteras systematiskt i ett semiformellt dokumet Det fis flera olika format på beskrivigar av desig möster Me åtmistoe följade iformatio måste fias med:

Beskrivig av desig möster Nam Ökar desig vokabuläret Mål Meige med möstret Problem Beskrivig av problemet och dess kotext Lösig Hur möstret löser problemet i kotexte Deltagare De olika elemete som behövs Kosekveser Fördelar och ackdelar med att tillämpa möstret Implemetatio Olika val som måste göras då möstret implemeteras, möjlige språkspecifikt

Beskrivig av GoF möster Nam och klassifikatio av möster: Förmedlar kära i möstret Mål: Vad gör möstret? Vad är målet med möstret? Vilka desig problem försöker möstret lösa? Beäms också som: Adra välkäda am för möstret Motiverig: Ett sceario som illustrerar desig problemet och hur möstret löser det här problemet. Ikluderas så att det är lättare att förstå meige med abstrakta möster. Tillämpigsbarhet: I vilka situatioer ka möstret avädas? Vilka exempel på dålig desig ka möstret hjälpa till att udvika? Hur käs sådaa situatioer ige?

Beskrivig av GoF möster Struktur: E grafisk represetatio av klassera i möstret. Till exempel ka UML klassdiagram avädas. Också UML sekvesdiagram ka vara avädbara för att beskriva beteedet hos objekte uder exekverig Deltagare: Klasser eller objekt som igår i möstret samt deras asvarsområde Samarbete: Hur samarbetar deltagara i möstret för att uppå det gemesamma målet Kosekveser: Hur åstadkommer möstret sitt mål? Vilka kompromisser måste göras? Vilka aspekter av strukture ka modifieras fritt?

Beskrivig av GoF möster Implemetatio: Fällor, Tips och tekiker för avädig och implmetatio av möstret. Språkspecifika problem. Exempel kod: Kod exempel som illustrerar implemetatio av möstret Käda avädigsområde: Exempel på var möstret har aväts i verkliga applikatioer. Åtmistoe frå två olika domäer Relaterade möster: Vilka adra möster är ära besläktade med möstret? Vilka är de viktiga skilladera? Med vilka adra möster ka möstret avädas?

GoF möster Det fis måga olika typer av möster Mest käda är GoF möstre 23 möster i boke Likade möster i Martis bok (kursboke) GoF möstre är Ite så problem specifika Små, gaska lågivå möster Focus på flexibilitet och återavädig geom lös kopplig mella klasser Priciper Programmera mot grässitt, ite mot implemetatio Föredra kompositio före ärvig Hitta det som varierar och dölj det

Fördelar med desig möster Ispiratio Möster ger iga lösigar, de ispirerar lösigar Möster gör expert kuskap explicit, och gör de tillgäglig för alla Gör objektorieterad programmerig eklare Möster förbättrar utvecklaras vokabulär Nam på möster bildar ett vokabulär Hjälper till att dokumetera system Desigmöster hjälper återavädig av mjukvaruarkitekturer

Nackdelar med desigmöster Möster leder ite ödvädigtvis till återavädig av kod Måste programmeras på ytt varje gåg Vissa möster är ovätat ekla Utvecklare överaväder och missbrukar ofta möster Möster ka leda till ökad komplexitet om de aväds på fel sätt Att itegrera möster i e utveckligs process är ite ödvädigtvis ekelt

Desig möster är ite Del av systemet Ite direkt programkod Ka ofta implemeteras på olika sätt E geerellt sätt att förbättra ett system Att aväda fel möster vid fel tillfälle leder till problem... Åtmistoe, så sätter ma till oödig komplexitet Absoluta Möster ska ädras efter behov Uta potetiella problem Desig fragmeterig: flera klasser, mera komplicerade beroede Oödigt komplicerade lösigar Oödig dyamisk bidig, problem med sabbhet Implicithet, kräver möjlige mycket dokumetatio

Möster geerellt Ite bara desigmöster Lågivå: idiom, OO mekaismer, orgaiserig av beräkig Medelivå: traditioella desigmöster Högivå: Mjukvaruarkitekturer, ramverk, produkt lies Ite bara geerella möster Domäspecifika: parallellism, telekommuikatio, GUI Ite bara lösigsorieterade Ati-möster Ite bara tekiska aspekter processmöster orgaisatiosmöster admiistratiosmöster

Sammafattig Desigmöster preseterar bra och prövade lösigar på olika problem på ett systematiskt sätt Aväd möster först efter att problemet har idetifierats Möster hadlar om erfarehet, ite uppfiigar Desigmöster hadlar om sut föruft de ska också avädas med sut föruft

GoF möster Klass vs. typ edärvig Klass Defiierar implemetatioe Typ Defiierar grässittet Relatio mella klass och typ Klasse av objektet implicerar dess typ, me ite omvät Ärvig av klasser

GoF priciper Programmera mot grässitt i stället för implemeterig Aväd grässitt (iterfaces) för att defiiera gemesamma grässitt Deklarera variabler att vara istaser av grässitt Ite istaser av klasser Aväd creatioal patters För att associera grässitt med implemetatioer Skyddar moduler frå att bero av kokreta klasser Fördelar Skyddar mot implemetatiosberoede Klieter vet ite om klasser som implemeterar grässitte de aväder Klieter käer edast till grässitt

Ärvig vs. kompositio Återavädigsmekaismer White-box (edärvig) vs. Black-box (kompositio) Klass ärvig Lätt att aväda; Lätt att modifiera Implemetatio återaväds Statisk Ka ite ädra uder exekverig Problem med döljig av iformatio Ädrigar i basklasse leder till ädrigar i subklasser och tvärtom Objekt kompositio Objekt aväds ebart geom (väldefiierade) grässitt Objekt ka bytas ut uder exekverig Om de har samma typ Om de har samma kotrakt

GoF priciper Föredra kompositio före klassedärvig Håller klasser fokuserade på e sak hög kohesio E desig som favoriserar kompositio har ofta flera objekt, och systemets beteede beror på relatioera mella dem. Ite defiierat i e klass Klasser blir ofta mera återavädbara Det fis e tedes att aväda klass edärvig för mycket

GoF möster Delade i tre kategorier Creatioal patters Beskriver iitialiserig och kofiguratio av klasser och objekt Structural patters Beskriver fråkopplig mella grässitt och implemetatio av objekt Behavioural patters Beskriver de dyamiska växelverka mella klasser och objekt

GoF möster Purpose Creatioal Structural Behavioural Scope Class Factory method Adapter Iterpreter Objekt Abstract factory Builder Prototype Sigleto Adapter Bridge Composite Decorator Facade Flyweight Proxy Chai of Resposibility Commad Iterator Mediator Memeto Observer State Strategy Visitor

Creatioal - Skapade Factory method Defiiera ett grässitt för att skapa objekt, me låt subklasser bestämma vilket klass som istatieras Abstract factory Fabrik för att skapa relaterade objekt uta att specificera vilka Builder kokreta klasser Fabrik för att skapa komplicerade objekt ikremetellt. Separerar kostruktioe av ett objekt frå represetatioe Prototype Fabrik för kloig av ya istaser frå ett prototyp objekt Sigleto Fabrik för att skapa e eda istas av e klass

Structural - Struktur Adapter Koverter ett grässitt av e klass till ett grässitt som förvätas av klietera Bridge Bid e av måga implemetatioer till e av måga abstraktioer Composite Struktur för att bygga rekursiva strukturer (till exempel olika variater träd) Decorator Utvidgig av objekt geom att koppla till y fuktioalitet dyamiskt

Structural Facade Erbjuder ett ehetligt och föreklat grässitt till e mägd grässitt i ett subsystem Flyweight Måga objekt som delas på ett effektivt sätt Proxy Ett objekt A aväds istället för ett aat objekt B, för att kotroller åtkomst till B på ågot sätt

Behavioural - Beteede Chai of resposibility Udviker att koppla e förfråga till mottagare geom att ge flera objekt chase att hatera förfråga Commad Iesluter e förfråga i ett objekt, och ka därigeom parametrisera klieter med olika förfrågigar Iterpreter E språktolkare för e språk med ågo grammatik Iterator Går igeom elemet i e samlig i e sekvetiell ordig Mediator Koordierar växelverkigar mella dess associerade objekt. Defiierar ett objekt som beskriver hur e samlig associerade objekt kommuicerar

Behavioural Memeto Spara e miesbild (sapshot) av ett objekt och dessutom bevara ikapslige Observer Objekt som beror på ett subjekt ädras automatiskt då subjektet ädras State Objekt vars beteede beror på dess tillståd Strategy Abstraktio för att välja mella olika algoritmer dyamiskt och trasparet för klieter Template method Låter subklasser omdefiiera vissa steg i e algoritm uta att ädra algoritmes struktur Visitor Operatioer som tillämpas på heterogea objektstrukturer. Tillåter defiitio av ya operatioer uta att ädra på objekte som de opererar

Möster i boke Ite exakt samma möster i R. Martis bok (kursboke) Adra möster Abstract server Active object Extesio object Moostate Null object Stairway to heave Taskmaster Template method

Möster i boke (forts.) Möster som fattas jämfört med GoF boke Builder Prototype Flyweight Iterpreter Chai of resposibility Iterator Memeto

Möster Abstract server Aväds för att desige ska uppfylla DIP (depedecy iversio priciple). Klasser ska ite bero av kokreta implemetatioer Active object Aväder Commad möstret för att skapa e ekel typ av multipla kotrolltrådar (multi-threadig) Extesio object Aväds för att sätta till fuktioalitet i e klasshierarki uta att modifiera hierarki Moostate Ett alterativ till Sigleto möstret

Möster Null Object Aväder e speciellt objekt i stället för ull-refereser Stairway to heave E variat av proxy möstret Taskmaster Möster för att implemetera komplicerade iteraktioer med t.ex avädare Template method E variat av Strategy möstret som aväder edärvig istället för delegerig

Ati-möster Ett möster som först verkar vara e bra ide, me seda visar sej ha dåliga kosekveser Iehåller också e lösig hur ma ska åtgärda problemet

Några ati-möster Call-super E subklass som kräver att e omdefiierad metod m aropar de gamla versioe av m i basklasse Aväd Template method möstret för att fixa problemet Circle-Ellipsis problem (Rectagle-Square) Nedärvig som ite följer LSP God object Ett objekt som gör för mycket. Leder till problem med uderhåll Poltergeist Kortlivade objekt som aväds för iitialiserig eller aropa metoder i adra objekt

Mera ati-möster Sequetial couplig E klass som kräver att dess metoder ska aropas i e specifik ordig Sigletoitis Överdrive avädig av Sigleto möstret YAFL (Yet Aother F***ig Layer) Oödiga lager eller idirekta arop. Valigt problem då desigmöster aväds på fel sätt

Sammafattig Möster är avädbara för desig av system Bra lösigar till valiga problem Ger också ispiratio till lösigar av midre valiga problem Lista av möster preseterad Mera detaljerade beskrivigar av möstre seare i kurse Refereser E. Gamma, R. Helm, R. Johso och J. Vlissides. Desig patters: Elemets of reusable object-orieted software R. Marti. Agile software developmet: Priciples, patters ad practices Desig patters. Wikipedia, http://e.wikipedia.org/wiki/desig_patter_%28computer_sciece%29