MV500B: Introduktion till interaktiv ljuddesign David Yanagisawa, Anders-Petter Andersson 4.5 högskolepoängLektion 3
Introduktion till OOP i Pd Syfte: Att främja återanvändning av kod genom att bygga moduler, s.k. abstractions
Introduktion till OOP i Pd Förenklad objektorienterad programmering (OOP) Något återanvändbart görs ofta till en klass Varje gång du behöver detta "något", skapar du ett nytt objekt från klassen Klassen är som en ritning som beskriver hur objekten kommer att fungera och vilka funktioner de kommer att ha Precis som en enda plan kan användas för att bygga flera byggnader kan en klass användas för att skapa flera kopior av ett objekt
Introduktion till OOP i Pd Förenklad objektorienterad programmering (forts.) Alla föremål av samma klass kommer att fungera på samma sätt, men kan ha olika tillstånd, t.ex. en SoundfilePlayer klass kan skapa massor av SoundfilePlayers – alla spelar olika filer men med samma uppsättning kontroller Om SoundfilePlayer-klassen ändras senare blir alla SoundfilePlayer förändrade Jämför detta med att istället kopiera kod från en SoundfilePlayer, klistra in och ändra det för att spela en annan fil. Om du senare ändrar den kopierade koden, kommer det inte att ändra de andra SoundfilePlayers; Du kommer att behöva ändra dem alla = dåligt
Introduktion till OOP i Pd Subklasser Subklasser ärver funktionaliteten från sina föräldrar, men lägger också till nya funktioner eller åsidosätter de gamla T.ex. en LoopSoundfilePlayer klass som fungerar som den överordnade klassen men som också kan spela upp filen i en loop Och samma sak gäller här: om superklassen (föräldern) ändras, ändras också alla subklasser = bra. Mottot är att definiera funktionaliteten endast en gång och på ett ställe, sedan ärva
Introduktion till OOP i Pd Organisera Att skriva klasser (eller moduler) gör det enkelt att organisera och dela med dig av ditt arbete Det hjälper också att generalisera, strukturera och göra din kod mer anpassningsbar och allsidigt användbar Om du finner att du duplicerar kod bör du tänka om Kan det vara en klass/modul?
Introduktion till OOP i Pd Förslag Gör ditt bästa att skriva generaliserad kod Skapa Bibliotek och moduler som du kan dela med dig av och återanvända Gå tillbaka och strukturera om koden då och då Kommenta din kod Tänk att du pratar med en framtida dig själv Och mycket viktigt (men så svårt i praktiken): Undvik att optimera för tidigt!
Introduktion till OOP i Pd Exempel example_sfplayer.pd sfplayer_module.pd sfplayerloop_module.pd