Paradygmaty programowania to teorie lub pomysły, które pomagają kształtować różne języki używane do tworzenia oprogramowania. Reprezentują główne cechy języka programowania, dyktując jego zachowanie.

Dlatego można bezpiecznie powiedzieć, że paradygmat jest tak samo ważny jak składnia i semantyka języka programowania. Większość popularnych języków programowania wykorzystuje jeden z kilku typów paradygmatu programowania.

1. Programowanie imperatywne

Paradygmat imperatywny jest jednym z najwcześniejszych podejść do programowania, sięgającym lat pięćdziesiątych. Ten paradygmat w dużej mierze opiera się na wykorzystaniu zmiennych, poleceń i procedur.

Programowanie imperatywne wykorzystuje polecenia do sprawdzania i aktualizowania zmiennych, przechowując stan w programie. Kombinacja poleceń tworzy następnie procedurę. Abstrakcja danych odgrywa kluczową rolę w reprezentacji danych, co ułatwia luźne sprzężenie.

Jednym z najpopularniejszych języków używających paradygmatu imperatywnego jest C. Ten język programowania obsługuje tylko procedury funkcji.

instagram viewer

Przykład programu imperatywnego

#zawierać 
#zawierać

ustrukturyzuj klienta
{
int IDKlienta;
char Numer zamówienia[20];
znak Nazwa[30];
float OrderTotal;
};

nieważne główne ()
{
struct Klient Jan = {4000, "HK1001", "Jan Kowalski", 200.00};
struct Klient Jane = {4001, "HK1002", "Jane Doe", 600.00};

memcpy (Jane. Imię, "Jane Jones", 10);

printf ("Całkowity koszt zamówienia %s o numerze %s to: $%.2f",Jane. Imię Jane. Numer zamówienia, Jane. Suma zamówienia);
}

Powyższy program w C tworzy Klient Struktura. ten struktura type jest doskonałym przykładem abstrakcji danych w C.

Program pokazuje, w jaki sposób polecenia mogą tworzyć, aktualizować i wyświetlać stan — za pomocą Jane zmienna struktury. Wszystkie te polecenia są w Główny() funkcja, która jako całość jest procedurą określającą, ile pieniędzy klient powinien zapłacić za zamówienie.

Wykonanie powyższego programu da w konsoli następujące dane wyjściowe:

Całkowity koszt zamówienia Jane Jones o numerze HK1002 wynosi: 600,00 $

2. Programowanie obiektowe

Paradygmat programowania obiektowego wystartował w latach 90. XX wieku. Ten paradygmat jest potomkiem paradygmatu imperatywnego. Jednak paradygmat obiektowy przechowuje stan w obiektach, a nie w zmiennych.

Języki programowania, które wykorzystują paradygmat obiektowy, często lepiej radzą sobie ze złożonymi aplikacjami. Podstawowymi cechami paradygmatu są obiekty, klasy, enkapsulacja danych, dziedziczenie i polimorfizm.

Klasa jest podstawowym składnikiem programu zorientowanego obiektowo. Niektóre klasy dziedziczą właściwości i operacje z innych klas. Programiści opisują to jako relację rodzic-dziecko. Należy do kategorii polimorfizmu podtypu.

Klasy zawierają narzędzia do ukrywania i ochrony poufnych danych poprzez enkapsulację. Po zdefiniowaniu klasy możesz użyć jej do tworzenia obiektów.

Trzy z bardziej popularnych języków programowania, które wykorzystują paradygmat obiektowy, to Java, C++ i Python.

Przykład programu zorientowanego obiektowo

Ta aplikacja demonstruje większość funkcji języka programowania zorientowanego obiektowo, Java. Określony typ klienta dziedziczy zachowanie z bardziej ogólnego typu. Wszyscy klienci wdrażają interfejs. Określony typ klienta zastępuje metodę z interfejsu.

Plik Discountable.java

publicznyberło Rabat {

publicznypróżnia grandTotal (String orderNumber, podwójnie całkowity);

}

Powyższy kod tworzy interfejs. W Javie interfejs to kolejny przykład polimorfizmu. Umożliwia podmiotom, które nie są bezpośrednio powiązane, dostęp do tych samych właściwości, takich jak Łączna suma metoda. Ta aplikacja koncentruje się na klientach, ale klasa pracowników może również mieć zastosowanie do interfejsu Discountable.

Plik Customer.java

publicznyklasa Klient przybory Rabat {
chronionyint Identyfikator klienta;
chroniony Ciąg nazwa klienta;
chroniony Ciąg kod klienta;

publiczny Klient() {
ten.identyfikator klienta = 0;
ten.nazwa_klienta = "";
ten.kod klienta = "";
}

publiczny Klient(int identyfikator klienta, ciąg nazwa_klienta, ciąg kod_klienta) {
ten.identyfikator klienta = identyfikator klienta;
ten.nazwa_klienta = nazwa_klienta;
ten.kod klienta = kod klienta;
}

publicznyint pobierz identyfikatorKlienta() {
powrót Identyfikator klienta;
}
publicznypróżnia ustawIdKlienta(int Identyfikator klienta) {
ten.identyfikator klienta = identyfikator klienta;
}
publiczny Ciąg pobierzNazwaKlienta() {
powrót nazwa klienta;
}
publicznypróżnia setCustomerName (String nazwa klienta) {
ten.nazwa_klienta = nazwa_klienta;
}
publiczny Ciąg pobierzKodKlienta() {
powrót kod klienta;
}

publicznypróżnia setCustomerCode (String CustomerCode) {
ten.kod klienta = kod klienta;
}

publicznypodwójnie customerType (String customerCode) {
podwójnie rabat = 0;

Jeśli (kod klienta.toLowerCase().equals("pre")) {
rabat = 0,10;
} w przeciwnym razieJeśli (kod klienta.toLowerCase().equals("gen")) {
rabat = 0,02;
} w przeciwnym razieJeśli (kod klienta.toLowerCase().equals("nowy")) {
rabat = 0,05;
}
powrót zniżka;
}

@Nadpisanie
publicznypróżnia grandTotal (String orderNumber, podwójnie całkowity) {

podwójnie rabat = typ klienta (kod klienta);
podwójnie rabatProcent = suma * rabat;
podwójnie finalTotal = total - DiscountPercentage;

System.na zewnątrz.println("Dla "+ getCustomerName() + " numer zamówienia " + numer zamówienia + " suma końcowa wynosi: $" + finalTotal);
}

}

Powyższy kod tworzy Klient klasa. Realizuje Zniżka interfejs, a następnie wykorzystuje swoją metodę do obliczenia i wyświetlenia sumy całkowitej na podstawie kategorii klienta. ten chroniony słowo kluczowe w powyższym kodzie jest przykładem enkapsulacji danych; ogranicza dostęp do danych utworzonych za pomocą tej klasy. Tak więc tylko podklasy (lub klasy potomne) Klient klasa będzie miała dostęp do swoich danych.

Plik NewCustomer.java

publicznyklasa Nowy klient rozciąga się Klient {
publiczny Nowy klient() {
Wspaniały();
}

publiczny Nowy klient(int identyfikator klienta, ciąg nazwa_klienta, ciąg kod_klienta) {
Wspaniały(identyfikator klienta, nazwa klienta, kod klienta);
}

}

Powyższy kod tworzy Nowy klient klasa, która rozszerza Klient klasa. Ten Klasa Java używa dziedziczenia do reprezentowania relacji rodzic-dziecko z Klient klasa. ten Nowy klient jest dzieckiem w relacji, więc ma dostęp do wszystkich właściwości w klasie Customer. Importuje atrybuty klasy Customer za pomocą Wspaniały() metoda.

Plik App.java

publicznyklasa Aplikacja {
publicznystatycznypróżnia main (String[] args) {
Jane klienta = Nowy Nowy Klient (4001, „Jane Jones”, „nowy”);
Jane.grandTotal("HK1002", 600);
}
}

Powyższy kod tworzy plik wykonywalny Aplikacja klasa. Ta klasa tworzy obiekt Customer (Jane) i poprzez polimorfizm sprawia, że ​​Jane a Nowy klient. Na koniec generuje sumę końcową dla zamówienia Jane. Wykonanie powyższego programu wygeneruje w konsoli następujące dane wyjściowe:

W przypadku zamówienia Jane Jones o numerze HK1002 całkowita suma wynosi: 570,0 USD

3. Programowanie funkcjonalne

Kluczowymi pojęciami tego paradygmatu są wyrażenia, funkcje, polimorfizm parametryczny i abstrakcja danych. Wyrażenia są podstawowymi składnikami funkcji używanych przez funkcjonalne języki programowania. Polimorfizm parametryczny jest jednym z trzech typów polimorfizmu. Ten typ ułatwia ogólne programowanie za pomocą funkcji i typów.

JavaScript to jeden z najpopularniejszych funkcjonalnych języków programowania.

Przykład programu funkcjonalnego

const Klient = {
Numer identyfikacyjny: 1002,
Imię i nazwisko: 'Jane Jones',
Kod klienta: „nowy”
}

const main = (klient, funkcja, wartość) => {
var total = func.apply (null, [ klient. KodKlienta, wartość ]);
console.log(`${klient. Suma nazwy} to: ${total}`);
}

const grandTotal = (kod klienta, suma) => {
if (Kod klienta == "nowy") {
rabat = suma * 0,05;
mainTotal = suma - rabat;
powrót mainRazem;
} else if (Kod klienta == "pre") {
rabat = suma * 0,10;
mainTotal = suma - rabat;
powrót mainRazem;
}
}

główna (Klient, grandTotal, 600);

Powyższy program JavaScript ma literał obiektowy i dwie funkcje. Deklaruje każdą z funkcji jako wyrażenie przy użyciu Funkcja strzałki JavaScript. ten Główny() funkcja jest funkcją wyższego rzędu. to trwa Łączna suma funkcja jako jeden z jej argumentów, a następnie wywołuje tę funkcję. Jest to również przykład polimorfizmu parametrycznego.

ten Łączna suma() funkcja zawiera kilka wyrażeń, a Klientobiekt jest przykładem abstrakcji danych. Powyższy program generuje w konsoli następujące dane wyjściowe:

Łączna kwota Jane Jones wynosi: 570 USD

Złożoność języków programowania

Język programowania może zawierać koncepcje jednego paradygmatu programowania, ale to nie znaczy, że jest ograniczony do jednego paradygmatu. Wiele popularnych języków programowania (takich jak Python, Java, JavaScript i C++) to języki wieloparadygmatyczne.

Niektóre paradygmaty programowania, takie jak imperatyw i paradygmaty zorientowane obiektowo, są również powiązane. Ale pomimo tego pokrewieństwa istnieją pewne znaczące różnice.

Programowanie obiektowe vs. Programowanie proceduralne: co je wyróżnia?

Czytaj dalej

DzielićĆwierkaćDzielićE-mail

Powiązane tematy

  • Programowanie
  • Programowanie
  • Programowanie funkcjonalne
  • Programowanie obiektowe
  • Języki programowania

O autorze

Kadeisha Kean (51 opublikowanych artykułów)

Kadeisha Kean jest programistą zajmującym się pełnymi stosami oprogramowania i pisarzem technicznym/technologicznym. Ma wyraźną umiejętność upraszczania niektórych z najbardziej złożonych koncepcji technologicznych; produkcja materiału, który może być łatwo zrozumiały dla każdego nowicjusza w dziedzinie technologii. Pasjonuje się pisaniem, tworzeniem ciekawego oprogramowania i podróżowaniem po świecie (poprzez filmy dokumentalne).

Więcej od Kadeishy Kean

Zapisz się do naszego newslettera

Dołącz do naszego newslettera, aby otrzymywać porady techniczne, recenzje, bezpłatne e-booki i ekskluzywne oferty!

Kliknij tutaj, aby zasubskrybować