Paradigmele de programare sunt teoriile sau ideile care ajută la modelarea diferitelor limbaje pe care le utilizați pentru a crea software. Ele reprezintă caracteristicile majore ale unui limbaj de programare, dictându-i comportamentul.

Prin urmare, este sigur să spunem că o paradigmă este la fel de importantă ca sintaxa și semantica unui limbaj de programare. Cele mai populare limbaje de programare folosesc unul dintre câteva tipuri de paradigme de programare.

1. Programare imperativă

Paradigma imperativă este una dintre cele mai timpurii abordări ale programării, încă din anii 1950. Această paradigmă se bazează în mare măsură pe utilizarea variabilelor, comenzilor și procedurilor.

Programarea imperativă folosește comenzi pentru a inspecta și actualiza variabilele, stochând starea într-un program. O combinație de comenzi creează apoi o procedură. Abstracția datelor joacă un rol crucial în reprezentarea datelor, ceea ce facilitează cuplarea liberă.

Una dintre cele mai populare limbaje care utilizează paradigma imperativă este C. Acest limbaj de programare acceptă numai proceduri de funcționare.

instagram viewer

Un exemplu de program imperativ

#include 
#include

struct Client
{
int CustomerId;
char OrderNumber[20];
char Nume[30];
float OrderTotal;
};

void principal ()
{
struct Client John = {4000, „HK1001”, „John Doe”, 200,00};
struct Client Jane = {4001, „HK1002”, „Jane Doe”, 600,00};

memcpy (Jane. Nume, „Jane Jones”, 10);

printf ("Costul total pentru numărul de comandă %s %s este: $%.2f", Jane. Nume, Jane. Număr de comandă, Jane. Total comanda);
}

Programul C de mai sus creează a Client structura. The struct tipul este un prim exemplu de abstractizare a datelor în C.

Programul demonstrează modul în care comenzile pot crea, actualiza și afișa starea - prin intermediul Jane variabilă de structură. Toate aceste comenzi sunt în a principal() funcție, care în ansamblu este o procedură care precizează câți bani ar trebui să plătească un client pentru o comandă.

Executarea programului de mai sus va produce următoarea ieșire în consolă:

Costul total pentru numărul de comandă Jane Jones HK1002 este: 600,00 USD

2. Programare orientată pe obiecte

Paradigma de programare orientată pe obiecte a luat amploare în anii 1990. Această paradigmă este un descendent al celei imperative. Cu toate acestea, paradigma orientată pe obiecte stochează starea în obiecte și nu în variabile.

Limbajele de programare care folosesc paradigma orientată pe obiecte gestionează adesea mai bine aplicațiile complexe. Caracteristicile de bază ale paradigmei sunt obiectele, clasele, încapsularea datelor, moștenirea și polimorfismul.

O clasă este componenta de bază a unui program orientat pe obiecte. Unele clase moștenesc proprietăți și operații de la alte clase. Programatorii descriu aceasta ca fiind o relație părinte-copil. Se încadrează în categoria polimorfismului de subtip.

Clasele conțin instrumente pentru a ascunde și proteja datele sensibile prin încapsulare. Odată ce ați definit o clasă, o puteți utiliza pentru a crea obiecte.

Trei dintre cele mai populare limbaje de programare care folosesc paradigma orientată pe obiecte sunt Java, C++ și Python.

Un exemplu de program orientat pe obiecte

Această aplicație demonstrează majoritatea caracteristicilor unui limbaj de programare orientat pe obiecte, Java. Un anumit tip de client moștenește comportamentul de la un tip mai general. Toți clienții implementează o interfață. Tipul specific de client suprascrie o metodă din interfață.

Fișierul Discountable.java

publicinterfata Reducere {

publicvid grandTotal (Număr de ordine șir, dubla total);

}

Codul de mai sus creează o interfață. În Java, o interfață este un alt exemplu de polimorfism. Permite entităților care nu au legătură directă să acceseze aceleași proprietăți, cum ar fi Total general metodă. Această aplicație se concentrează pe clienți, dar o clasă de angajați ar putea folosi și interfața Discountable.

Fișierul Customer.java

publicclasă Client unelte Reducere {
protejatint Număr de înregistrare client;
protejat String customerName;
protejat String customerCode;

public Client() {
acest.clientId = 0;
acest.customerName = "";
acest.customerCode = "";
}

public Client(int customerId, String customerName, String customerCode) {
acest.customerId = customerId;
acest.customerName = customerName;
acest.customerCode = customerCode;
}

publicint getCustomerId() {
întoarcere Număr de înregistrare client;
}
publicvid setCustomerId(int Număr de înregistrare client) {
acest.customerId = customerId;
}
public String getCustomerName() {
întoarcere Numele clientului;
}
publicvid setCustomerName (String customerName) {
acest.customerName = customerName;
}
public String getCustomerCode() {
întoarcere cod de client;
}

publicvid setCustomerCode (String customerCode) {
acest.customerCode = customerCode;
}

publicdubla customerType (String customerCode) {
dubla reducere = 0;

dacă (customerCode.toLowerCase().equals("pre")) {
reducere = 0,10;
} altfeldacă (customerCode.toLowerCase().equals("gen")) {
reducere = 0,02;
} altfeldacă (customerCode.toLowerCase().equals(„nou”)) {
reducere = 0,05;
}
întoarcere reducere;
}

@Trece peste
publicvid grandTotal (Număr de ordine șir, dubla total) {

dubla discount = customerType (customerCode);
dubla discountProcentage = total * discount;
dubla finalTotal = total - discountProcentage;

Sistem.afară.println("Pentru "+ getCustomerName() + " numărul comandă " + numărul comandă + " totalul general este: $" + finalTotal);
}

}

Codul de mai sus creează un Client clasă. Acesta implementează Reducere interfață, apoi își folosește metoda pentru a calcula și afișa un total general, bazat pe categoria clientului. The protejat cuvântul cheie din codul de mai sus este un exemplu de încapsulare a datelor; restricţionează accesul la datele create prin această clasă. Deci, numai subclasele (sau clasele copil) ale Client clasa va avea acces la datele sale.

Fișierul NewCustomer.java

publicclasă Client nou se extinde Client {
public Client nou() {
super();
}

public Client nou(int customerId, String customerName, String customerCode) {
super(customerId, customerName, customerCode);
}

}

Codul de mai sus creează un Client nou clasa care extinde Client clasă. Acest Clasa Java folosește moștenirea pentru a reprezenta o relație părinte-copil cu Client clasă. The Client nou este copilul din relație, deci, are acces la toate proprietățile din clasa Client. Importă atributele clasei Client folosind super() metodă.

Fișierul App.java

publicclasă Aplicația {
publicstaticvid main (String[] args) {
Clienta Jane = nou Client nou (4001, „Jane Jones”, „nou”);
Jane.grandTotal("HK1002", 600);
}
}

Codul de mai sus creează un executabil App clasă. Această clasă creează un obiect Client (Jane) și prin polimorfism o face pe Jane a Client nou. În cele din urmă, generează totalul mare pentru comanda lui Jane. Executarea programului de mai sus va genera următoarea ieșire în consolă:

Pentru numărul de comandă Jane Jones HK1002, totalul total este: 570,0 USD

3. Programare functionala

Conceptele cheie ale acestei paradigme sunt expresiile, funcțiile, polimorfismul parametric și abstracția datelor. Expresiile sunt componentele fundamentale ale funcțiilor utilizate de limbajele de programare funcționale. Polimorfismul parametric este unul dintre cele trei tipuri de polimorfism. Acest tip facilitează programarea generică prin funcții și tipuri.

JavaScript este unul dintre cele mai populare limbaje de programare funcțională.

Un exemplu de program funcțional

const Client = {
Număr Id: 1002,
Nume: „Jane Jones”,
Cod client: „nou”
}

const main = (client, func, valoare) => {
var total = func.aply (null, [ client. CustomerCode, valoare ]);
console.log(`${client. Nume} total este: ${total}`);
}

const grandTotal = (Cod client, total) => {
if (CustomerCode == „nou”) {
reducere = total * 0,05;
mainTotal = total - discount;
returnează mainTotal;
} else if (CustomerCode == „pre”) {
reducere = total * 0,10;
mainTotal = total - discount;
returnează mainTotal;
}
}

principal (Client, total general, 600);

Programul JavaScript de mai sus are un obiect literal și două funcții. Declară fiecare dintre funcții ca o expresie folosind Funcția săgeată JavaScript. The principal() funcția este o funcție de ordin superior. Este nevoie de Total general funcția ca unul dintre argumentele sale, apoi apelează acea funcție. Acesta este, de asemenea, un exemplu de polimorfism parametric.

The Total general() funcția conține mai multe expresii și Clientobiect este un exemplu de abstractizare a datelor. Programul de mai sus generează următoarea ieșire în consolă:

Totalul Jane Jones este: 570 USD

Complexitatea limbajelor de programare

Un limbaj de programare poate întruchipa conceptele unei paradigme de programare, dar asta nu înseamnă că este limitat la o singură paradigmă. Multe dintre limbajele de programare populare (cum ar fi Python, Java, JavaScript și C++) sunt limbaje cu mai multe paradigme.

Unele paradigme de programare, cum ar fi paradigmele imperative și orientate pe obiecte, sunt, de asemenea, legate. Dar, în ciuda acestei rudențe, există unele diferențe semnificative.

Programare orientată pe obiecte vs. Programare procedurală: ce le face diferite?

Citiți în continuare

AcțiuneTweetAcțiuneE-mail

Subiecte asemănătoare

  • Programare
  • Programare
  • Programare functionala
  • Programare orientată pe obiecte
  • Limbaje de programare

Despre autor

Kadeisha Kean (51 articole publicate)

Kadeisha Kean este un dezvoltator de software Full-Stack și un scriitor tehnic/tehnologic. Are capacitatea distinctă de a simplifica unele dintre cele mai complexe concepte tehnologice; producând material care poate fi ușor de înțeles de orice novice în tehnologie. Este pasionată de scris, de dezvoltare de software interesant și de călătorie prin lume (prin documentare).

Mai multe de la Kadeisha Kean

Aboneaza-te la newsletter-ul nostru

Alăturați-vă buletinului nostru informativ pentru sfaturi tehnice, recenzii, cărți electronice gratuite și oferte exclusive!

Click aici pentru a te abona