Programmeerimisparadigmad on teooriad või ideed, mis aitavad kujundada erinevaid keeli, mida tarkvara loomiseks kasutate. Need esindavad programmeerimiskeele peamisi omadusi, määrates selle käitumise.

Seetõttu võib kindlalt väita, et paradigma on sama oluline kui programmeerimiskeele süntaks ja semantika. Enamik populaarseid programmeerimiskeeli kasutavad ühte vähestest programmeerimisparadigma tüüpidest.

1. Imperatiivne programmeerimine

Imperatiivne paradigma on üks varasemaid lähenemisviise programmeerimisele, ulatudes juba 1950ndatesse. See paradigma tugineb suuresti muutujate, käskude ja protseduuride kasutamisele.

Imperatiivne programmeerimine kasutab muutujate kontrollimiseks ja värskendamiseks käske, salvestades oleku programmi. Seejärel loob käskude kombinatsioon protseduuri. Andmete abstraktsioonil on andmete esituses ülioluline roll, mis hõlbustab lahtist sidumist.

Üks populaarsemaid keeli, mis kasutab imperatiivset paradigmat, on C. See programmeerimiskeel toetab ainult funktsiooniprotseduure.

Kohustusliku programmi näide

#kaasa 
#kaasa

struktuur Klient
{
int KliendiID;
char TellimisNumber[20];
char Nimi[30];
float OrderTotal;
};

tühine põhi ()
{
struct Klient John = {4000, "HK1001", "John Doe", 200,00};
struct Klient Jane = {4001, "HK1002", "Jane Doe", 600,00};

memcpy (Jane. nimi, "Jane Jones", 10);

printf ("%s tellimuse numbri %s kogumaksumus on: $%.2f",Jane. Nimi, Jane. Tellimuse number, Jane. Kokku);
}

Ülaltoodud programm C loob a Klient struktuur. The struktuur tüüp on C-vormingus andmete abstraktsiooni suurepärane näide.

Programm demonstreerib, kuidas käsud saavad olekut luua, värskendada ja kuvada Jane struktuuri muutuja. Kõik need käsud on a peamine () funktsioon, mis tervikuna on protseduur, mis määrab, kui palju raha peaks klient tellimuse eest maksma.

Ülaltoodud programmi käivitamine annab teie konsoolis järgmise väljundi:

Jane Jonesi tellimuse number HK1002 kogumaksumus on: 600,00 $

2. Objektorienteeritud programmeerimine

Objektorienteeritud programmeerimise paradigma sai alguse 1990. aastatel. See paradigma on imperatiivsuse järglane. Objektorienteeritud paradigma salvestab oleku aga objektidesse, mitte muutujatesse.

Objektorienteeritud paradigmat kasutavad programmeerimiskeeled saavad sageli keerukate rakendustega hakkama. Paradigma põhiomadused on objektid, klassid, andmete kapseldamine, pärimine ja polümorfism.

Klass on objektorienteeritud programmi põhikomponent. Mõned klassid pärivad omadused ja toimingud teistelt klassidelt. Programmeerijad kirjeldavad seda kui vanema ja lapse suhet. See kuulub alamtüübi polümorfismi kategooriasse.

Klassid sisaldavad tööriistu tundlike andmete peitmiseks ja kaitsmiseks kapseldamise kaudu. Kui olete klassi määratlenud, saate seda kasutada objektide loomiseks.

Kolm populaarsemat programmeerimiskeelt, mis kasutavad objektorienteeritud paradigmat, on Java, C++ ja Python.

Objektorienteeritud programmi näide

See rakendus demonstreerib enamikku objektorienteeritud programmeerimiskeele Java funktsioonidest. Konkreetne klienditüüp pärib käitumise üldisemast tüübist. Kõik kliendid rakendavad liidest. Konkreetne klienditüüp alistab liidese meetodi.

Fail Discountable.java

avalikliides Soodushinnaga {

avaliktühine grandTotal (string orderNumber, kahekordne kokku);

}

Ülaltoodud kood loob liidese. Java puhul on liides veel üks näide polümorfismist. See võimaldab üksustel, mis pole otseselt seotud, pääseda juurde samadele atribuutidele, näiteks kogusumma meetod. See rakendus keskendub klientidele, kuid ka töötajaklass võiks kasutada allahindlusliidest.

Klient.java fail

avalikklass Klient rakendab Soodushinnaga {
kaitstudint Kliendi ID;
kaitstud String kliendiNimi;
kaitstud String kliendikood;

avalik Klient() {
see.customerId = 0;
see.customerName = "";
see.customerCode = "";
}

avalik Klient(int kliendiId, string kliendinimi, string kliendikood) {
see.customerId = kliendiId;
see.customerName = kliendiNimi;
see.customerCode = kliendikood;
}

avalikint getCustomerId() {
tagasi Kliendi ID;
}
avaliktühine setCustomerId(int Kliendi ID) {
see.customerId = kliendiId;
}
avalik String getCustomerName() {
tagasi Kliendi nimi;
}
avaliktühine setCustomerName (string customerName) {
see.customerName = kliendiNimi;
}
avalik String getCustomerCode() {
tagasi kliendikood;
}

avaliktühine setCustomerCode (string customerCode) {
see.customerCode = kliendikood;
}

avalikkahekordne customerType (string customerCode) {
kahekordne allahindlus = 0;

kui (customerCode.toLowerCase().equals("pre")) {
allahindlus = 0,10;
} muidukui (customerCode.toLowerCase().equals("gen")) {
allahindlus = 0,02;
} muidukui (customerCode.toLowerCase().equals("new")) {
allahindlus = 0,05;
}
tagasi allahindlus;
}

@Alista
avaliktühine grandTotal (string orderNumber, kahekordne kokku) {

kahekordne allahindlus = customerType (kliendikood);
kahekordne allahindlusprotsent = kokku * allahindlus;
kahekordne finalTotal = kokku – allahindlusprotsent;

Süsteem.välja.println("Selle "+ getCustomerName() + " order Number " + orderNumber + " puhul on lõppsumma: $" + finalTotal);
}

}

Ülaltoodud kood loob a Klient klass. See rakendab Soodushinnaga liides, seejärel kasutab selle meetodit kliendi kategooria põhjal kogusumma arvutamiseks ja kuvamiseks. The kaitstud ülaltoodud koodi märksõna on andmete kapseldamise näide; see piirab juurdepääsu selle klassi kaudu loodud andmetele. Niisiis, ainult alamklassid (või alamklassid). Klient klassil on juurdepääs oma andmetele.

Fail NewCustomer.java

avalikklass Uus klient ulatub Klient {
avalik Uus klient() {
Super();
}

avalik Uus klient(int kliendiId, string kliendinimi, string kliendikood) {
Super(kliendiId, kliendinimi, kliendikood);
}

}

Ülaltoodud kood loob a Uus klient klass, mis laiendab Klient klass. See Java klass kasutab pärimist esindama vanema ja lapse suhet Klient klass. The Uus klient on suhtes laps, seega on tal juurdepääs kõikidele kliendiklassi atribuutidele. See impordib kliendiklassi atribuudid, kasutades Super() meetod.

App.java fail

avalikklass Rakendus {
avalikstaatilinetühine main (String[] args) {
Klient Jane = uus Uus klient (4001, "Jane Jones", "uus");
Jane.grandTotal("HK1002", 600);
}
}

Ülaltoodud kood loob käivitatava faili Rakendus klass. See klass loob Kliendi objekti (Jane) ja polümorfismi kaudu Jane a Uus klient. Lõpuks genereerib see Jane'i tellimuse kogusumma. Ülaltoodud programmi käivitamine genereerib konsoolis järgmise väljundi:

Jane Jonesi tellimuse number HK1002 kogusumma on 570,0 $

3. Funktsionaalne programmeerimine

Selle paradigma põhimõisted on avaldised, funktsioonid, parameetriline polümorfism ja andmete abstraktsioon. Avaldised on funktsionaalsete programmeerimiskeelte kasutatavate funktsioonide põhikomponendid. Parameetriline polümorfism on üks kolmest polümorfismi tüübist. See tüüp hõlbustab üldist programmeerimist funktsioonide ja tüüpide kaudu.

JavaScript on üks populaarsemaid funktsionaalseid programmeerimiskeeli.

Funktsionaalse programmi näide

const Klient = {
ID-number: 1002,
Nimi: "Jane Jones",
Kliendikood: "uus"
}

const main = (klient, funktsioon, väärtus) => {
var total = func.apply (null, [ klient. Kliendikood, väärtus ]);
console.log(`${klient. Name} kokku on: ${total}`);
}

const grandTotal = (kliendikood, kokku) => {
if (CustomerCode == "uus") {
allahindlus = kokku * 0,05;
mainTotal = kokku - allahindlus;
tagastama mainTotal;
} else if (CustomerCode == "pre") {
allahindlus = kokku * 0,10;
mainTotal = kokku - allahindlus;
tagastama mainTotal;
}
}

peamine (Klient, grandTotal, 600);

Ülaltoodud JavaScripti programmil on objekt sõnasõnaline ja kaks funktsiooni. See deklareerib iga funktsiooni avaldisena, kasutades JavaScripti noolefunktsioon. The peamine () funktsioon on kõrgemat järku funktsioon. See võtab kogusumma funktsiooni ühe argumendina, siis kutsub see funktsioon välja. See on ka näide parameetrilisest polümorfismist.

The kogusumma() funktsioon sisaldab mitmeid avaldisi ja Klientobjektiks on andmete abstraktsiooni näide. Ülaltoodud programm genereerib konsoolis järgmise väljundi:

Jane Jonesi kogusumma: 570 dollarit

Programmeerimiskeelte keerukus

Programmeerimiskeel võib kehastada ühe programmeerimisparadigma kontseptsioone, kuid see ei tähenda, et see piirduks ühe paradigmaga. Paljud populaarsed programmeerimiskeeled (nt Python, Java, JavaScript ja C++) on mitme paradigma keeled.

Mõned programmeerimisparadigmad, nagu imperatiivne ja objektorienteeritud paradigma, on samuti seotud. Kuid vaatamata sellele sugulusele on mõned olulised erinevused.

Objektorienteeritud programmeerimine vs. Protseduuriline programmeerimine: mis teeb need erinevaks?

Loe edasi

JagaSäutsJagaMeil

Seotud teemad

  • Programmeerimine
  • Programmeerimine
  • Funktsionaalne programmeerimine
  • Objektorienteeritud programmeerimine
  • Programmeerimiskeeled

Autori kohta

Kadeisha Kean (51 avaldatud artiklit)

Kadeisha Kean on täisstacki tarkvaraarendaja ja tehniline/tehnoloogiakirjutaja. Tal on selge võime lihtsustada mõningaid kõige keerukamaid tehnoloogilisi kontseptsioone; Tootma materjali, mis on kergesti mõistetav igale tehnoloogiaalgajale. Ta on kirglik kirjutamise, huvitava tarkvara arendamise ja maailmas reisimise vastu (dokumentaalfilmide kaudu).

Veel Kadeiha Keanilt

Liituge meie uudiskirjaga

Liituge meie uudiskirjaga tehniliste näpunäidete, arvustuste, tasuta e-raamatute ja eksklusiivsete pakkumiste saamiseks!

Tellimiseks klõpsake siin