<?xml version="1.0" encoding="ISO-8859-15"?>
<rss version="2.0"><channel>
<title>olio-ohjelmoinnin pointti</title>
<link>http://sange.fi/~atehwa/cgi-bin/piki.cgi/</link>
<description>Recent changes in olio-ohjelmoinnin pointti</description>
<item><title>olio-ohjelmoinnin pointti</title>
<link>http://sange.fi/~atehwa/cgi-bin/piki.cgi/olio-ohjelmoinnin%20pointti</link>
<guid>http://sange.fi/~atehwa/cgi-bin/piki.cgi/#1366482255</guid>
<description>&lt;p&gt;&lt;del&gt;Selitä tässä, mitä olio-ohjelmoinnin pointti tarkoittaa.&lt;/del&gt; 
&lt;ins&gt;Minun mielestäni olio-ohjelmointi ei tarkoita mitään aivan 
tiettyä. Olen nähnyt niin monta erilaista oliopohjaiseksi kutsuttua 
kieltä, että tiedän kyllä aika monta asiaa, joita sillä tarkoitetaan 
eri yhteyksissä. Ja koska olio-ohjelmoinnista puhutaan yhä, voisi olla 
hyvinkin vaivan arvoista kertoa, mitkä olio-ohjelmoinniksi kutsutut 
ajatukset ovat minusta tutustumisen väärtejä.&lt;/ins&gt; 

&lt;p&gt;&lt;del&gt;Miten toteutetaan&lt;/del&gt; &lt;ins&gt;Olio-ohjelmointi on tapa (tai 
useampi) järjestellä ohjelmia. Nämä tavat järjestellä ohjelmia eivät 
ole ohjelmointikielten ominaisuuksia, vaan ohjelmointitekniikoita, 
joita voi käyttää lähes kaikissa ohjelmointikielissä -- vaikka tietyt 
ohjelmointikielet saattavatkin sisältää ominaisuuksia tai perinteitä, 
jotka helpottavat tai ohjaavat oliotekniikoiden käyttöön. Demotakseni 
tätä kirjoitan esimerkkini kolmella&lt;/ins&gt; eri &lt;del&gt;kielillä: * 
enkapsulointi&lt;/del&gt; &lt;ins&gt;ohjelmointikielellä: C-kielellä, joka on 
suojaukseton keskitason systeemiohjelmointikieli, Python-kielellä, joka 
on oliotekniikoille erityistä tukea sisältävä korkean tason kieli, ja 
Scheme-kielellä, joka on ennen kaikkea funktionaaliseen ohjelmointiin 
suuntautunut korkean tason kieli.&lt;/ins&gt; 

&lt;p&gt;&lt;ins&gt;Keskeisiä oliotekniikoita ovat mielestäni nämä:&lt;/ins&gt; 

&lt;p&gt;&lt;ins&gt;# kapselointi eli suojaus (''encapsulation'') # dynaaminen 
sidonta (''dynamic dispatch'') # periytyvyys (''inheritance'')&lt;/ins&gt; 

&lt;p&gt;&lt;ins&gt;Kapselointi on hyvin perustavanlaatuinen tekniikka, jolla 
ohjelmistojen laatua on parannettu paljon ennen olio-ohjelmoinnin 
tuloa. Omasta mielestäni dynaaminen sidonta on se olennainen 
innovaatio, joka tekee olio-ohjelmoinnista jotenkin hyödyllisen 
lähestymistavan. Periytyvyys on mielestäni lähinnä haitallinen 
sivupiirre, joka on sisällytetty joihinkin oliokieliin 
"kätevyyssyistä". En aio demota periytyvyyttä, koska se on mielestäni 
haitallinen keksintö, mutta kapseloinnin ja dynaamisen sidonnan yritän 
selittää siten, että käy myös ilmi, mitä hyötyä niistä on.&lt;/ins&gt; 

&lt;p&gt;&lt;ins&gt;!!! Kapselointi&lt;/ins&gt; 

&lt;p&gt;[...]

&lt;p&gt;&lt;ins&gt;!!! Dynaaminen sidonta&lt;/ins&gt; 

&lt;p&gt;* &lt;del&gt;dynaaminen dispatch * luokat&lt;/del&gt; &lt;ins&gt;funktiot&lt;/ins&gt; * 
rajapinnat 

&lt;p&gt;&lt;del&gt;Toteutuskielet:&lt;/del&gt; * &lt;del&gt;C * Python * Scheme&lt;/del&gt; 

&lt;p&gt;[kategoria: keskeneräiset] &lt;ins&gt;* [kategoria: ohjelmointi]&lt;/ins&gt;

</description>
<pubDate>Sat, 20 Apr 2013 18:24:15 +0000</pubDate>
</item>

</channel></rss>
