AOP vs OOP
AOP (Aspect-Oriented Programming) a OOP (Object-Oriented Programming) jsou dvě programovací paradigmata. Programovací paradigma je základní styl počítačového programování. Programová paradigma se liší v tom, jak je každý prvek programů reprezentován a jak je každý krok definován pro řešení problémů. Jak již název napovídá, OOP se zaměřuje na reprezentaci problémů pomocí objektů v reálném světě a jejich chování, zatímco AOP se zabývá rozdělením programů na oddělené průřezové záležitosti.
Co je AOP?
AOP je programové paradigma, které se zabývá rozdělením programu na soudržné oblasti funkčnosti (nazývané koncerny), které zasahují do více oblastí, aby se zvýšila modularita. Podpora abstrakcí (jako jsou třídy, metody atd.) Pro seskupování a zapouzdření problémů do jedinečných entit je poskytována v mnoha dalších programovacích paradigmatech. Obavy (například „Protokolování“) jsou však příklady průřezových problémů, protože každá zaznamenaná část systému je ovlivněna strategií používanou pro protokolování. Hlavním zaměřením všech implementací AOP je mít vhodné průřezové výrazy, které zachytí všechny obavy na jednom místě.
Co je OOP?
V OOP je kladen důraz na přemýšlení o problému, který má být vyřešen z hlediska prvků reálného světa, a reprezentování problému z hlediska objektů a jejich chování. Třídy zobrazují abstraktní reprezentace objektů skutečného světa. Třídy jsou jako plány nebo šablony, které shromažďují podobné položky nebo věci, které lze seskupovat. Třídy mají vlastnosti nazývané atributy. Atributy jsou implementovány jako globální a instance 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 datovou strukturou, která se velmi podobá některému reálné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 je zapouzdření dosaženo tím, že atributy jsou soukromé, zatímco vytvoří veřejné metody, které mohou být použity 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 super třídy). Polymorfismus umožňuje programátorovi nahradit objekt třídy místo objektu jeho super třídy. Zpravidla se podstatná jména nalezená v definici problému stanou přímo třídami v programu. A podobně se slovesa stávají metodami. Některé z nejpopulárnějších jazyků OOP jsou Java a C #.
Jaký je rozdíl mezi AOP a OOP?
Klíčovým rozdílem mezi OOP a AOP je to, že cílem OOP je rozdělit programovací úkol na objekty, které zapouzdřují data a metody, zatímco cílem AOP je rozdělit program na průřezové obavy. Ve skutečnosti AOP není konkurentem OOP, protože se vynořil z paradigmatu OOP. AOP rozšiřuje OOP tím, že řeší několik svých problémů. AOP představuje elegantní způsoby, jak implementovat průřezové obavy (které by mohly být rozptýleny na několika místech v odpovídající implementaci OOP) na jednom místě. Díky AOP je tedy program čistší a volně propojený.