25.9. OLO1-session Purkumuistiinpanot

Enkapsulointi

-toteutustavan piilottaminen public/private määreillä

-olion sisäisen logiikan voi piilottaa käyttäjältä privatella

-vähentää monimutkasuutta

-estää toimintalogiikan muuttamisen koskematta alkuperäiseen koodiin

-ollennaista esim kirjastoissa joissa tiedonhakua ei tarvitse nähdä, vaan haettava tieto tarvitaan näyttää

-poistaa public puolelta potentiaalista raskasta luettavaa

muuistiinpanot

Interface (rajapinta)

-Antaa ohjelmien käyttää muita ohjelmia kun tiedetään ohjelman kyvyt ja metodit.

-Scalassa ei ole rajapintoja. “Traits” korvaa tämän saman toiminnon

-Tunnetaan myös API:na. Esimerkkejä:

-OpenGL

-DirectX

kalvot

Olio-ohjelmoinnin hierarkia

-On hankala näyttää minkään kielen kaikki hierarkiat ihan yksinkertaisesti koon takia; dataa olisi liikaa

-Scalassa:

-Kaikki ovat olioita

-Kaikkein korkeimmalla on Scala.Any, jonka alla on Scala.AnyRef ja Scala.AnyVal josta sitten kaikki muut oliot periytyvät.

-Null ja None ovat metaforisia “käärmeitä” Scalan maailmassa, kaikista alimpina hierarkiassa.

Tietotyyppien näkyvyys

-Yleisesti muuttujat voi määritellä joko private tai public tyyppisiksi

-Private muuttujat näkyvät vaan sen luokan sisällä tai sen funktion sisällä jossa se on määritelty

-Public:it näkyvät ulkoakinpäin. Näihin voi päästä mistä tahansa käsin.

-Scalassa ei ole julkisia muuttujia, niitä pitää määritellä luokkana tai pitää luoda funktio joka erikseen palauttaa sitä, mitä haluaa.

Perintä 

-tarkoituksena vähentää uudelleenkirjoittamista

-olio-ohjelmoinnissa on tapa luoda ali-luokkia olemassa olevista luokista

kalvot

Oliot ja tietokannat

-Olioita ja dataa halutaan tallentaa tietokantoihin

-tarkoitus ei ole tallentaa jokaista oliota, vaan tiettyjä oleellisia asioita

-voidaan poistaa tallennettuja olioita tietokannoista ja tuoda niitä takaisin muistista käyttäjän halun mukaan

-tyypit ja viittaukset:

-esim string voi olla niin pitkä kun haluaa, joka voi hajottaa tallennusta jos tallennuksessa on rajallinen tila

-dataolioit tulevat yksittäisinä ja eivät peri toisiaan

-pythonissa on django-palikka jossa idea on luoda olio joka kuvastaa jotain taulua ja linkitetään liittyviä indeksejä. Monta oliota voi linkittää samaan aikaan.

Tietorakenteet 

muistiinpanot 1

muistiinpanot 2

Emme valitettavasti saaneet polymorphismista tietoa kuten suunniteltu.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s