4 Advantages of Object-Oriented Programming

Stejně jako padákové kalhoty a Pac-Man, i OOP (objektově orientované programování) začalo v 80. letech minulého století. Ale na rozdíl od módních trendů a postaviček z videoher je tento model programování i po těchto letech stále silný.

OOP se stalo základní součástí vývoje softwaru. Díky všudypřítomnosti jazyků jako Java a C++ nelze vyvíjet software pro mobilní zařízení, pokud nerozumíte objektově orientovanému přístupu. Totéž platí pro seriózní vývoj webových aplikací vzhledem k popularitě jazyků OOP, jako jsou Python, PHP a Ruby.

Zorientovat se v myšlence objektově orientovaného programování může být pro některé IT profesionály náročné. Možná si říkáte, proč vůbec potřebujete objekty, když můžete použít přístup shora dolů tradičního strukturovaného programování v jazycích, jako je Visual Basic.

Pokud jste již takový software psali, jste pravděpodobně zvyklí rozkládat velké problémy na dílčí problémy a řešit je v samostatných jednotkách kódu. Nebo možná máte zkušenosti s funkcionálním programováním, které s prvky kódu zachází jako s přesnými matematickými funkcemi a zabraňuje jejich ovlivňování jiných prvků, tj. žádné vedlejší efekty.

Pokusíte-li se však proniknout do OOP, zjistíte, že jde o zcela nový způsob řešení problémů. Základní koncept spočívá v tom, že místo psaní programu vytvoříte třídu, což je jakási šablona obsahující proměnné a funkce. Objekty jsou samostatné instance této třídy a můžete je přimět k interakci zábavnými a zajímavými způsoby.

Výhody objektově orientovaného programování spočívají v tomto druhu zapouzdření. Zde je podrobný přehled některých hlavních výhod OOP:

Modularita pro snadnější řešení problémů

Něco se pokazilo a vy netušíte, kde hledat. Je problém v souboru Widget, nebo ve WhaleFlumperu? Budete se muset prodírat souborem „kanalizace.c“? Doufám, že jste svůj kód zakomentovali!“

Při práci s objektově orientovanými programovými jazyky přesně víte, kde hledat. „Aha, objekt auta se porouchal? Problém musí být ve třídě Car!“ „To je problém. Nemusíte se hrabat v ničem jiném.

V tom je krása zapouzdření. Objekty jsou samostatné a každý kousek funkčnosti dělá svou vlastní věc, zatímco ostatní kousky nechává na pokoji. Tato modalita také umožňuje týmu IT pracovat na více objektech současně a zároveň minimalizuje možnost, že by jeden člověk duplikoval funkčnost někoho jiného.

Pomůžeme vám najít další programátorskou práci:

Použití kódu pomocí dědičnosti

Předpokládejme, že kromě vašeho objektu Car potřebuje jeden kolega objekt RaceCar a druhý objekt Limousine. Každý sestavuje své objekty samostatně, ale objeví mezi nimi společné rysy. Ve skutečnosti je každý objekt vlastně jen jiným druhem Auta. Právě zde technika dědičnosti šetří čas:

Samozřejmě, že Limousine a RaceCar mají stále své jedinečné atributy a funkce. Pokud objekt RaceCar potřebuje metodu „fireAfterBurners“ a objekt Limousine potřebuje Chauffeur, mohla by každá třída implementovat samostatné funkce jen pro sebe. Protože však obě třídy dědí klíčové aspekty od třídy Car, například metody „drive“ nebo „fillUpGas“, mohou vaše dědičné třídy jednoduše znovu použít existující kód, místo abyste tyto funkce psali znovu.

Co když chcete provést změnu u všech objektů Car bez ohledu na typ? To je další výhoda OO přístupu. Stačí provést změnu ve třídě Car a všechny objekty Car jednoduše zdědí nový kód.

Pružnost díky polymorfismu

Podle tohoto příkladu nyní potřebujete jen několik ovladačů neboli funkcí jako „driveCar“, „driveRaceCar“ a „DriveLimousine“. Řidiči RaceCarDrivers sdílejí některé vlastnosti s řidiči LimousineDrivers, ale jiné věci, jako RaceHelmets a BeverageSponsorships, jsou jedinečné.

Tady přichází ke slovu sladký polymorfismus objektově orientovaného programování. Protože jedna funkce se může tvarově měnit a přizpůsobit se té které třídě, ve které se nachází, můžete v nadřazené třídě Car vytvořit jednu funkci nazvanou „drive“ – ne „driveCar“ nebo „driveRaceCar“, ale prostě „drive“. Tato jedna funkce by fungovala s třídami RaceCarDriver, LimousineDriver atd. Ve skutečnosti byste dokonce mohli mít „raceCar.drive(myRaceCarDriver)“ nebo „limo.drive(myChauffeur)“.

Efektivní řešení problémů

Jazyk jako C má v historii programování úžasné dědictví, ale psát software v jazyce shora dolů je jako hrát Jengu v rukavicích. Čím složitější je, tím větší je šance, že se zhroutí. Zatímco psát program ve funkcionálním stylu v jazycích jako Haskell nebo ML může být fuška.

Objektově orientované programování je často nejpřirozenější a nejpragmatičtější přístup, jakmile si ho osvojíte. Jazyky OOP vám umožňují rozdělit software na kousky problémů, které pak můžete řešit – jeden objekt po druhém.

To neznamená, že OOP je jediná správná cesta. Výhod objektově orientovaného programování je však mnoho. Když potřebujete řešit složité programátorské problémy a chcete rozšířit svůj soubor dovedností o kódové nástroje, je OOP vaším přítelem – a má mnohem větší životnost a užitečnost než Pac-Man nebo padákové kalhoty.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.