Miten selität aloittelijalle oliokeskeisen, toiminnallisen ja proseduuriohjelmoinnin erot?


Vastaus 1:

Kaikki ohjelmointi on ongelmanratkaisua. Ero on siinä, kuinka hyökkäät ongelmaan.

Pakollinen ohjelmointi kohtelee lähdekoodia kuten tehtäväjohtajan ohje. Jokainen ohjelman vaihe on kuin tilaukset ylhäältä tietokoneelle: tee tämä. Tulosta se. Siirrä ne sinne. Se on kuin päivittäistavarakaupan luettelon seuraaminen. Imperatiivisen ohjelmoinnin perusyksikkö on muuttuja, arvo (kuten luku tai tekstimerkkijono), joka voi muuttua ajan myötä.

Objektisuuntautunut ohjelmointi on yritys rakentaa pakollinen koodi. Se tekee malleja ongelma-alueen eri käsitteistä ja soveltaa niitä. Näille malleille ("esineet") annetaan toiminnallisuus ("menetelmät"), joiden avulla ne voivat suorittaa erilaisia ​​toimintoja, ja jokainen objekti voi myös pitää tietoja. OOP: n perusyksikkö on esine, joka voi itse sisältää muita esineitä, vähän kuin venäläinen Matryoshka-nukke. Ajatuksena on helpottaa ihmisten ohjelmoijien visuaalista ohjelmaa sitomalla ohjelma konkreettisille asioille, mikä antaa sinun ryhmitellä asiat loogisesti.

Funktionaalinen ohjelmointi käsittelee ongelma-aluetta yhdessä muodostettuina yhtälöketjuina ("funktioina"), määritelmien etenemisenä, joka johtaa vastaukseen. Tiedot alkavat monien aksioomien muodossa ja huipentuvat vastaukseen (ajattele sitä loogisena argumenttina, joka päättyy näytöllä näkemiin). Funktionaalinen ohjelmointi lainaa monia käsitteitä muodollisesta matematiikasta, ja kuten matematiikassa (ja toisin kuin imperatiivinen ohjelmointi tai OOP), se ei yleensä tallenna tietoja vaiheiden välillä. Perusyksikkö toiminnallisessa ohjelmoinnissa on toiminto, joka voi suorittaa sekä toimia että tuottaa muita toimintoja.

Näiden kolmen ohjelmointimallin (ja muiden, jotka eivät kuulu tämän vastauksen piiriin) avulla voit lähettää tietoja edestakaisin. Ero on siinä, mitä lähetät. Pakollinen ja oliokeskeinen ohjelmointi lähettää tietoja muuttujien tai esineiden muodossa ("Tässä on se lasku, jonka pyysit, käytä sitä haluamallasi tavalla.") Toiminnallinen ohjelma siirtää toimintoja edestakaisin ("Oletetaan, että sinulla on kolmio ( tämä määritelmä) näiden kulmien ja koon kanssa ... ") ja kehottaa vastaanottajaa lisäämään seuraavan osan argumentista.

Lyhyesti sanottuna nämä paradigmat ovat erilaisia ​​tapoja tarkastella samaa asiaa.

(Kiitos Pratik Mehta panoksesta.)


Vastaus 2:
  • Olio-ohjelmointi tallentaa kaiken sen datan ja ohjelmointilogiikan objekteihin. Objektit määritellään data- ja ohjelmointilogiikiksi, jotka on koottu mukavaan, siistiin pakettiin. Ajoittaisella ohjelmoinnilla voidaan muuttaa tietoja rutiinisarjan (tunnetaan myös nimellä proseduurit) avulla. Näitä rutiineja ei tarvitse ryhmitellä objektiin. Funktionaalinen ohjelmointi laskee uuden datan toimintojen avulla. Kun datalle on annettu arvo, sitä ei voi muuttaa (ominaisuus, jota kutsutaan muuttumattomuudeksi).

x = x + 1


Vastaus 3:
  • Olio-ohjelmointi tallentaa kaiken sen datan ja ohjelmointilogiikan objekteihin. Objektit määritellään data- ja ohjelmointilogiikiksi, jotka on koottu mukavaan, siistiin pakettiin. Ajoittaisella ohjelmoinnilla voidaan muuttaa tietoja rutiinisarjan (tunnetaan myös nimellä proseduurit) avulla. Näitä rutiineja ei tarvitse ryhmitellä objektiin. Funktionaalinen ohjelmointi laskee uuden datan toimintojen avulla. Kun datalle on annettu arvo, sitä ei voi muuttaa (ominaisuus, jota kutsutaan muuttumattomuudeksi).

x = x + 1


Vastaus 4:
  • Olio-ohjelmointi tallentaa kaiken sen datan ja ohjelmointilogiikan objekteihin. Objektit määritellään data- ja ohjelmointilogiikiksi, jotka on koottu mukavaan, siistiin pakettiin. Ajoittaisella ohjelmoinnilla voidaan muuttaa tietoja rutiinisarjan (tunnetaan myös nimellä proseduurit) avulla. Näitä rutiineja ei tarvitse ryhmitellä objektiin. Funktionaalinen ohjelmointi laskee uuden datan toimintojen avulla. Kun datalle on annettu arvo, sitä ei voi muuttaa (ominaisuus, jota kutsutaan muuttumattomuudeksi).

x = x + 1