Ohjelmointiparadigmat ovat teorioita tai ideoita, jotka auttavat muokkaamaan eri kieliä, joita käytät ohjelmistojen luomiseen. Ne edustavat ohjelmointikielen tärkeimpiä ominaisuuksia ja sanelevat sen käyttäytymisen.
Siksi on turvallista sanoa, että paradigma on yhtä tärkeä kuin ohjelmointikielen syntaksi ja semantiikka. Suosituimmat ohjelmointikielet käyttävät yhtä harvoista ohjelmointiparadigmatyypeistä.
1. Pakollinen ohjelmointi
Pakollinen paradigma on yksi varhaisimmista lähestymistavoista ohjelmointiin, jo 1950-luvulla. Tämä paradigma perustuu voimakkaasti muuttujien, komentojen ja menettelyjen käyttöön.
Pakollinen ohjelmointi käyttää komentoja muuttujien tarkastamiseen ja päivittämiseen ja tilan tallentamiseen ohjelmaan. Komentojen yhdistelmä luo sitten proseduurin. Datan abstraktiolla on ratkaiseva rooli tiedon esittämisessä, mikä helpottaa löysää kytkentää.
Yksi suosituimmista imperatiivista paradigmaa käyttävistä kielistä on C. Tämä ohjelmointikieli tukee vain toimintoproseduureja.
Esimerkki ohjelmasta
#sisältää
#sisältäärakentaa asiakasta
{
int Asiakastunnus;
char TilausNumber[20];
char Nimi[30];
float OrderTotal;
};tyhjä pää ()
{
struct Asiakas John = {4000, "HK1001", "John Doe", 200,00};
struct Asiakas Jane = {4001, "HK1002", "Jane Doe", 600.00};memcpy (Jane. Nimi, "Jane Jones", 10);
printf ("%s tilausnumeron %s kokonaishinta on: $%.2f",Jane. Nimi, Jane. Tilausnumero, Jane. OrderTotal);
}
Yllä oleva C-ohjelma luo a Asiakas rakenne. The struct tyyppi on erinomainen esimerkki tietojen abstraktista C: ssä.
Ohjelma näyttää, kuinka komennot voivat luoda, päivittää ja näyttää tilan - kautta Jane rakennemuuttuja. Kaikki nämä komennot ovat kohdassa a pää() toiminto, joka kokonaisuutena on menettely, joka kertoo, kuinka paljon asiakkaan tulee maksaa tilauksesta.
Yllä olevan ohjelman suorittaminen tuottaa seuraavan tulosteen konsolissasi:
Jane Jones -tilausnumeron HK1002 kokonaishinta on: 600,00 dollaria
2. Olio-ohjelmointi
Olio-ohjelmoinnin paradigma lähti liikkeelle 1990-luvulla. Tämä paradigma on imperatiivin jälkeläinen. Olio-paradigma kuitenkin tallentaa tilan objekteihin, ei muuttujiin.
Olio-paradigmaa käyttävät ohjelmointikielet käsittelevät monimutkaisia sovelluksia usein paremmin. Paradigman ydinominaisuudet ovat objektit, luokat, tietojen kapselointi, periytyminen ja polymorfismi.
Luokka on olio-ohjelman peruskomponentti. Jotkut luokat perivät ominaisuudet ja toiminnot muilta luokilta. Ohjelmoijat kuvaavat tätä vanhemman ja lapsen väliseksi suhteeksi. Se kuuluu polymorfismin alatyypin luokkaan.
Luokat sisältävät työkaluja arkaluontoisten tietojen piilottamiseen ja suojaamiseen kapseloinnin avulla. Kun olet määrittänyt luokan, voit käyttää sitä objektien luomiseen.
Kolme suositumpaa olio-paradigmaa käyttävää ohjelmointikieltä ovat Java, C++ ja Python.
Esimerkki olio-ohjelmasta
Tämä sovellus esittelee useimmat olio-ohjelmointikielen, Java, ominaisuudet. Tietty asiakastyyppi perii käyttäytymisen yleisemmältä tyypiltä. Kaikki asiakkaat ottavat käyttöön käyttöliittymän. Tietty asiakastyyppi ohittaa menetelmän käyttöliittymästä.
Discountable.java-tiedosto
julkinenkäyttöliittymä Alennus {
julkinenmitätön grandTotal (merkkijono orderNumber, kaksinkertainen kaikki yhteensä);
}
Yllä oleva koodi luo käyttöliittymän. Javassa käyttöliittymä on toinen esimerkki polymorfismista. Sen avulla entiteetit, jotka eivät liity suoraan, voivat käyttää samoja ominaisuuksia, kuten loppusumma menetelmä. Tämä sovellus keskittyy asiakkaisiin, mutta myös työntekijäluokka voisi käyttää Discountable-liittymää.
Customer.java-tiedosto
julkinenluokkaa Asiakas toteuttaa Alennus {
suojattuint Asiakas ID;
suojattu merkkijono asiakkaanNimi;
suojattu merkkijono asiakaskoodi;julkinen Asiakas() {
Tämä.customerId = 0;
Tämä.customerName = "";
Tämä.customerCode = "";
}julkinen Asiakas(int customerId, String customerName, String customerCode) {
Tämä.customerId = asiakastunnus;
Tämä.customerName = asiakkaanNimi;
Tämä.customerCode = asiakaskoodi;
}julkinenint getCustomerId() {
palata Asiakas ID;
}
julkinenmitätön setCustomerId(int Asiakas ID) {
Tämä.customerId = asiakastunnus;
}
julkinen Merkkijono getCustomerName() {
palata Asiakkaan nimi;
}
julkinenmitätön setCustomerName (merkkijono customerName) {
Tämä.customerName = asiakkaanNimi;
}
julkinen Merkkijono getCustomerCode() {
palata asiakaskoodi;
}julkinenmitätön setCustomerCode (merkkijono customerCode) {
Tämä.customerCode = asiakaskoodi;
}julkinenkaksinkertainen customerType (merkkijono customerCode) {
kaksinkertainen alennus = 0;jos (customerCode.toLowerCase().equals("pre")) {
alennus = 0,10;
} muujos (customerCode.toLowerCase().equals("gen")) {
alennus = 0,02;
} muujos (customerCode.toLowerCase().equals("uusi")) {
alennus = 0,05;
}
palata alennus;
}@Ohittaa
julkinenmitätön grandTotal (merkkijono orderNumber, kaksinkertainen kaikki yhteensä) {kaksinkertainen alennus = asiakastyyppi (asiakaskoodi);
kaksinkertainen alennusprosentti = yhteensä * alennus;
kaksinkertainen finalTotal = yhteensä - alennusprosentti;Järjestelmä.ulos.println("Kohteen "+ getCustomerName() + " order Number " + orderNumber + " loppusumma on: $" + finalTotal);
}
}
Yllä oleva koodi luo a Asiakas luokkaa. Se toteuttaa Alennushintainen käyttöliittymän avulla laskea ja näyttää loppusumma asiakkaan luokan perusteella. The suojattu avainsana yllä olevassa koodissa on esimerkki tietojen kapseloinnista; se rajoittaa pääsyä tämän luokan kautta luotuihin tietoihin. Joten vain alaluokat (tai alaluokat). Asiakas luokalla on pääsy tietoihinsa.
NewCustomer.java-tiedosto
julkinenluokkaa Uusi asiakas ulottuu Asiakas {
julkinen Uusi asiakas() {
super();
}julkinen Uusi asiakas(int customerId, String customerName, String customerCode) {
super(customerId, customerName, customerCode);
}
}
Yllä oleva koodi luo a Uusi asiakas luokkaa, joka laajentaa Asiakas luokkaa. Tämä Java-luokka käyttää periytymistä edustaa vanhemman ja lapsen suhdetta Asiakas luokkaa. The Uusi asiakas on parisuhteen lapsi, joten sillä on pääsy kaikkiin Asiakas-luokan kiinteistöihin. Se tuo asiakasluokan attribuutit käyttämällä super() menetelmä.
App.java-tiedosto
julkinenluokkaa Sovellus {
julkinenstaattinenmitätön main (String[] args) {
Asiakas Jane = Uusi Uusi asiakas (4001, "Jane Jones", "uusi");
Jane.grandTotal("HK1002", 600);
}
}
Yllä oleva koodi luo suoritettavan tiedoston Sovellus luokkaa. Tämä luokka luo Asiakasobjektin (Jane) ja polymorfismin kautta tekee Jane a Uusi asiakas. Lopuksi se tuottaa Janen tilauksen loppusumman. Yllä olevan ohjelman suorittaminen luo seuraavan tulosteen konsoliin:
Jane Jones -tilauksen numero HK1002 loppusumma on: 570,0 dollaria
3. Toiminnallinen ohjelmointi
Tämän paradigman avainkäsitteet ovat lausekkeet, funktiot, parametrinen polymorfismi ja tiedon abstraktio. Lausekkeet ovat funktionaalisten ohjelmointikielten käyttämien funktioiden peruskomponentteja. Parametrinen polymorfismi on yksi kolmesta polymorfismista. Tämä tyyppi mahdollistaa yleisen ohjelmoinnin funktioiden ja tyyppien avulla.
JavaScript on yksi suosituimmista toiminnallisista ohjelmointikielistä.
Esimerkki toimivasta ohjelmasta
const Asiakas = {
Tunnusnumero: 1002,
Nimi: "Jane Jones",
Asiakaskoodi: "uusi"
}const main = (asiakas, toiminto, arvo) => {
var total = func.apply (null, [ asiakas. Asiakaskoodi, arvo ]);
console.log(`${customer. Nimi} yhteensä on: ${total}`);
}const grandTotal = (Asiakaskoodi, yhteensä) => {
if (CustomerCode == "uusi") {
alennus = yhteensä * 0,05;
mainTotal = yhteensä - alennus;
palauttaa mainTotal;
} else if (CustomerCode == "pre") {
alennus = yhteensä * 0,10;
mainTotal = yhteensä - alennus;
palauttaa mainTotal;
}
}
tärkein (Asiakas, grandTotal, 600);
Yllä olevassa JavaScript-ohjelmassa on objekti kirjaimellinen ja kaksi toimintoa. Se ilmoittaa jokaisen funktion lausekkeeksi käyttämällä JavaScript-nuolitoiminto. The pää() funktio on korkeamman asteen funktio. Se vie loppusumma funktion yhtenä argumenteistaan, kutsuu sitten sitä funktiota. Tämä on myös esimerkki parametrisesta polymorfismista.
The loppusumma() funktio sisältää useita lausekkeita, ja Asiakasesine on esimerkki tiedon abstraktiosta. Yllä oleva ohjelma luo seuraavan tulosteen konsolissa:
Jane Jones yhteensä: 570 dollaria
Ohjelmointikielten monimutkaisuus
Ohjelmointikieli voi ilmentää yhden ohjelmointiparadigman käsitteitä, mutta se ei tarkoita, että se rajoittuu yhteen paradigmaan. Monet suosituista ohjelmointikielistä (kuten Python, Java, JavaScript ja C++) ovat usean paradigman kieliä.
Jotkut ohjelmointiparadigmat, kuten imperatiiviset ja olioparadigmat, liittyvät myös toisiinsa. Mutta tästä sukulaisuudesta huolimatta on joitain merkittäviä eroja.
Olio-ohjelmointi vs. Proseduuriohjelmointi: mikä tekee niistä erilaisia?
Lue Seuraava
Liittyvät aiheet
- Ohjelmointi
- Ohjelmointi
- Toiminnallinen ohjelmointi
- Olio-ohjelmointi
- Ohjelmointikielet
Kirjailijasta
Kadeisha Kean on Full-Stack-ohjelmistokehittäjä ja tekninen/teknologiakirjoittaja. Hänellä on selkeä kyky yksinkertaistaa joitain monimutkaisimmista teknologisista käsitteistä; tuottaa materiaalia, jonka jokainen teknologia-aloittelija voi helposti ymmärtää. Hän on intohimoinen kirjoittamiseen, mielenkiintoisten ohjelmistojen kehittämiseen ja maailmalla matkustamiseen (dokumenttien kautta).
tilaa uutiskirjeemme
Liity uutiskirjeemme saadaksesi teknisiä vinkkejä, arvosteluja, ilmaisia e-kirjoja ja eksklusiivisia tarjouksia!
Klikkaa tästä tilataksesi