Strukturované programování vs objektově orientované programování
Objektově orientované programování (OOP) a strukturované programování jsou dvě programovací paradigmata. Programovací paradigma je základní styl počítačového programování. Programovací paradigmata se liší v tom, jak je každý prvek programů reprezentován a jak jsou definovány kroky pro řešení problémů. Jak název napovídá, OOP se zaměřuje na reprezentaci problémů pomocí objektů reálného světa a jejich chování, zatímco strukturované programování se zabývá organizací programu v logické struktuře.
Co je strukturované programování?
Předpokládá se, že rok narození strukturovaného programování je 1970. Strukturované programování je považováno za podmnožinu imperativního programování. Strukturovaný program je tvořen jednoduchými strukturami toku programů, které jsou hierarchicky uspořádány. Jsou to sekvence, výběr a opakování. Sekvence je pořadí příkazů. Výběr znamená výběr příkazu ze sady příkazů na základě aktuálního stavu programu (např. pomocí příkazů if) a opakování znamená provádění příkazu, dokud není dosaženo určitého stavu (např. pomocí příkazů for nebo while). ALGOL, Pascal, Ada a PL/I jsou některé ze strukturovaných programovacích jazyků, které se dnes používají.
Co je objektově orientované programování?
V OOP se zaměřujeme na přemýšlení o problému, který je třeba vyřešit, z hlediska prvků reálného světa a na reprezentaci problému z hlediska objektů a jejich chování. Třídy zobrazují abstraktní reprezentace objektů reálného světa. Třídy jsou jako plány nebo šablony, které shromažďují podobné položky nebo věci, které lze seskupit. Třídy mají vlastnosti nazývané atributy. Atributy jsou implementovány jako globální a instanční proměnné. Metody ve třídách představují nebo definují chování těchto tříd. Metody a atributy tříd se nazývají členy třídy. Instance třídy se nazývá objekt. Objekt je tedy datová struktura, která se velmi podobá nějakému skutečnému objektu.
Existuje několik důležitých konceptů OOP, jako je abstrakce dat, zapouzdření, polymorfismus, zasílání zpráv, modularita a dědičnost. Typicky se zapouzdření dosáhne tak, že se atributy stanou soukromými, zatímco se vytvoří veřejné metody, které lze použít pro přístup k těmto atributům. Dědičnost umožňuje uživateli rozšířit třídy (nazývané podtřídy) z jiných tříd (nazývaných supertřídy). Polymorfismus umožňuje programátorovi nahradit objekt třídy místo objektu své nadtřídy. Obvykle se podstatná jména nalezená v definici problému přímo stávají třídami v programu. A podobně se ze sloves stávají metody. Některé z nejoblíbenějších jazyků OOP jsou Java a C.
Jaký je rozdíl mezi strukturovaným programováním a objektově orientovaným programováním?
Klíčový rozdíl mezi strukturovaným programováním a OOP je v tom, že se strukturované programování zaměřuje na strukturování programu do hierarchie podprogramů, zatímco OOP se zaměřuje na rozdělení programovací úlohy na objekty, které zapouzdřují dat a metod. OOP je považováno za flexibilnější než strukturované programování, protože OOP odděluje program do sítě subsystémů spíše než strukturuje program do hierarchie. I když strukturování poskytuje určitou jasnost, malá změna velmi rozsáhlého strukturovaného programu může způsobit dominový efekt nutnosti změnit více podprogramů.