Programovací paradigmata jsou teorie nebo nápady, které pomáhají utvářet různé jazyky, které používáte k vytváření softwaru. Představují hlavní charakteristiky programovacího jazyka a určují jeho chování.
Dá se tedy s jistotou říci, že paradigma je stejně důležité jako syntaxe a sémantika programovacího jazyka. Většina populárních programovacích jazyků používá jeden z mála typů programovacího paradigmatu.
1. Imperativní programování
Imperativní paradigma je jedním z nejranějších přístupů k programování, který sahá až do 50. let 20. století. Toto paradigma silně závisí na použití proměnných, příkazů a procedur.
Imperativní programování používá příkazy ke kontrole a aktualizaci proměnných a ukládá stav do programu. Kombinací příkazů pak vznikne procedura. Abstrakce dat hraje klíčovou roli v reprezentaci dat, což usnadňuje volné propojení.
Jedním z nejpopulárnějších jazyků, který používá imperativní paradigma, je C. Tento programovací jazyk podporuje pouze funkční procedury.
Příklad imperativního programu
#zahrnout
#zahrnoutstruct Zákazník
{
int CustomerId;
char Číslo objednávky[20];
char Name[30];
float OrderTotal;
};void main ()
{
struct Zákazník John = {4000, "HK1001", "John Doe", 200,00};
struct Customer Jane = {4001, "HK1002", "Jane Doe", 600,00};memcpy (Jane. Jméno, "Jane Jones", 10);
printf ("Celkové náklady na %s číslo objednávky %s jsou: $%.2f",Jane. Jméno, Jane. Číslo objednávky, Jane. OrderTotal);
}
Výše uvedený program C vytvoří a Zákazník struktura. The strukturovat typ je ukázkovým příkladem abstrakce dat v C.
Program demonstruje, jak mohou příkazy vytvářet, aktualizovat a zobrazovat stav — prostřednictvím Jane strukturní proměnná. Všechny tyto příkazy jsou v a hlavní() funkce, což je jako celek postup, který udává, kolik peněz má zákazník za objednávku zaplatit.
Spuštění výše uvedeného programu vytvoří ve vaší konzoli následující výstup:
Celková cena objednávky Jane Jones číslo HK1002 je: 600,00 $
2. Objektově orientované programování
Paradigma objektově orientovaného programování se rozmohlo v 90. letech 20. století. Toto paradigma je potomkem imperativu. Objektově orientované paradigma však ukládá stav do objektů a nikoli do proměnných.
Programovací jazyky, které používají objektově orientované paradigma, často zvládají složité aplikace lépe. Základními rysy paradigmatu jsou objekty, třídy, zapouzdření dat, dědičnost a polymorfismus.
Třída je základní složkou objektově orientovaného programu. Některé třídy dědí vlastnosti a operace z jiných tříd. Programátoři to popisují jako vztah rodič-dítě. Spadá do kategorie podtypového polymorfismu.
Třídy obsahují nástroje pro skrytí a ochranu citlivých dat prostřednictvím zapouzdření. Jakmile definujete třídu, můžete ji použít k vytváření objektů.
Tři z nejpopulárnějších programovacích jazyků, které používají objektově orientované paradigma, jsou Java, C++ a Python.
Příklad objektově orientovaného programu
Tato aplikace demonstruje většinu funkcí objektově orientovaného programovacího jazyka Java. Specifický typ zákazníka přebírá chování od obecnějšího typu. Všichni zákazníci implementují rozhraní. Konkrétní typ zákazníka přepíše metodu z rozhraní.
Soubor Discountable.java
veřejnostrozhraní Zlevněné {
veřejnostprázdnota grandTotal (Řetězec orderNumber, dvojnásobek celkový);
}
Výše uvedený kód vytváří rozhraní. V Javě je rozhraní další příklad polymorfismu. Umožňuje entitám, které přímo nesouvisí, přístup ke stejným vlastnostem, jako je např celkový součet metoda. Tato aplikace se zaměřuje na zákazníky, ale pro rozhraní Discountable by mohla mít využití i třída zaměstnanců.
Soubor Customer.java
veřejnosttřída Zákazník nářadí Zlevněné {
chráněnýint zákaznické identifikační číslo;
chráněný Řetězec customerName;
chráněný Řetězec customerCode;veřejnost Zákazník() {
tento.customerId = 0;
tento.customerName = "";
tento.customerCode = "";
}veřejnost Zákazník(int customerId, String customerName, String customerCode) {
tento.customerId = customerId;
tento.customerName = customerName;
tento.customerCode = customerCode;
}veřejnostint getCustomerId() {
vrátit se zákaznické identifikační číslo;
}
veřejnostprázdnota setCustomerId(int zákaznické identifikační číslo) {
tento.customerId = customerId;
}
veřejnost String getCustomerName() {
vrátit se Jméno zákazníka;
}
veřejnostprázdnota setCustomerName (String customerName) {
tento.customerName = customerName;
}
veřejnost String getCustomerCode() {
vrátit se zákaznický kód;
}veřejnostprázdnota setCustomerCode (String customerCode) {
tento.customerCode = customerCode;
}veřejnostdvojnásobek customerType (String customerCode) {
dvojnásobek sleva = 0;-li (customerCode.toLowerCase().equals("pre")) {
sleva = 0,10;
} jiný-li (customerCode.toLowerCase().equals("gen")) {
sleva = 0,02;
} jiný-li (customerCode.toLowerCase().equals("nové")) {
sleva = 0,05;
}
vrátit se sleva;
}@Přepsat
veřejnostprázdnota grandTotal (Řetězec orderNumber, dvojnásobek celkem) {dvojnásobek sleva = customerType (customerCode);
dvojnásobek slevaPercentage = celkem * sleva;
dvojnásobek finalTotal = celkem - slevaPercentage;Systém.ven.println("Pro "+ getCustomerName() + " číslo objednávky " + orderNumber + " celkový součet je: $" + finalTotal);
}
}
Výše uvedený kód vytvoří a Zákazník třída. Implementuje Možnost slevy rozhraní, poté použije svou metodu k výpočtu a zobrazení celkového součtu na základě kategorie zákazníka. The chráněný klíčové slovo ve výše uvedeném kódu je příkladem zapouzdření dat; omezuje přístup k datům vytvořeným prostřednictvím této třídy. Takže pouze podtřídy (nebo podřízené třídy) Zákazník třída bude mít přístup ke svým datům.
Soubor NewCustomer.java
veřejnosttřída Nový zákazník rozšiřuje zákazník {
veřejnost Nový zákazník() {
super();
}veřejnost Nový zákazník(int customerId, String customerName, String customerCode) {
super(customerId, customerName, customerCode);
}
}
Výše uvedený kód vytvoří a Nový zákazník třída, která rozšiřuje Zákazník třída. Tento Třída Java používá dědičnost reprezentovat vztah rodič-dítě s Zákazník třída. The Nový zákazník je dítě ve vztahu, takže má přístup ke všem vlastnostem ve třídě Zákazník. Importuje atributy třídy Customer pomocí super() metoda.
Soubor App.java
veřejnosttřída Aplikace {
veřejnoststatickýprázdnota main (String[] args) {
Zákazník Jane = Nový Nový zákazník (4001, "Jane Jones", "nový");
Jane.grandTotal("HK1002", 600);
}
}
Výše uvedený kód vytvoří spustitelný soubor Aplikace třída. Tato třída vytváří objekt Customer (Jane) a prostřednictvím polymorfismu dělá Jane a Nový zákazník. Nakonec vygeneruje celkový součet pro Janinu objednávku. Spuštění výše uvedeného programu vygeneruje v konzole následující výstup:
U objednávky Jane Jones číslo HK1002 je celková částka: 570,0 $
3. Funkcionální programování
Klíčovými pojmy tohoto paradigmatu jsou výrazy, funkce, parametrický polymorfismus a abstrakce dat. Výrazy jsou základními součástmi funkcí používaných funkcionálními programovacími jazyky. Parametrický polymorfismus je jedním ze tří typů polymorfismu. Tento typ usnadňuje obecné programování prostřednictvím funkcí a typů.
JavaScript je jedním z nejpopulárnějších funkčních programovacích jazyků.
Příklad funkčního programu
stálý zákazník = {
IdNumber: 1002,
Jméno: 'Jane Jones',
Zákaznický kód: 'nový'
}const main = (zákazník, funkce, hodnota) => {
var total = func.apply (null, [ customer. Kód zákazníka, hodnota ]);
console.log(`${zákazník. Name} total is: ${total}`);
}const grandTotal = (CustomerCode, total) => {
if (CustomerCode == "new") {
sleva = celkem * 0,05;
mainTotal = celkem - sleva;
návrat hlavníCelkem;
} else if (CustomerCode == "pre") {
sleva = celkem * 0,10;
mainTotal = celkem - sleva;
návrat hlavníCelkem;
}
}
hlavní (zákazník, grandTotal, 600);
Výše uvedený program JavaScript má příponu objektový doslovný a dvě funkce. Deklaruje každou z funkcí jako výraz pomocí Funkce šipky JavaScriptu. The hlavní() funkce je funkce vyššího řádu. To trvá celkový součet funkci jako jeden z jejích argumentů, pak tuto funkci zavolá. Toto je také příklad parametrického polymorfismu.
The celkový součet() funkce obsahuje několik výrazů a Zákazníkobjekt je příkladem abstrakce dat. Výše uvedený program generuje v konzole následující výstup:
Jane Jones celkem: 570 dolarů
Složitost programovacích jazyků
Programovací jazyk může ztělesňovat koncepty jednoho programovacího paradigmatu, ale to neznamená, že je omezen na jedno paradigma. Mnoho populárních programovacích jazyků (jako je Python, Java, JavaScript a C++) jsou jazyky s více paradigmaty.
Některá programovací paradigmata, jako je imperativní a objektově orientovaná paradigmata, jsou také příbuzná. Ale i přes tuto příbuznost existují některé významné rozdíly.
Objektově orientované programování vs. Procedurální programování: Čím se liší?
Přečtěte si další
Související témata
- Programování
- Programování
- Funkcionální programování
- Objektově orientované programování
- Programovací jazyky
O autorovi
Kadeisha Kean je vývojář úplného softwaru a technický/technologický autor. Má výraznou schopnost zjednodušit některé z nejsložitějších technologických konceptů; vyrábí materiál, který může snadno pochopit každý technologický nováček. Je nadšená psaním, vývojem zajímavého softwaru a cestováním po světě (prostřednictvím dokumentů).
Přihlaste se k odběru našeho newsletteru
Připojte se k našemu zpravodaji a získejte technické tipy, recenze, bezplatné e-knihy a exkluzivní nabídky!
Chcete-li se přihlásit k odběru, klikněte sem