AOP vs OOP
AOP (Programimi i orientuar nga aspekti) dhe OOP (Programimi i orientuar nga objekti) janë dy paradigma programimi. Një paradigmë programimi është një stil themelor i programimit kompjuterik. Paradigmat e programimit ndryshojnë në mënyrën se si përfaqësohet secili element i programit dhe si përcaktohet secili hap për zgjidhjen e problemeve. Siç sugjeron emri, OOP fokusohet në përfaqësimin e problemeve duke përdorur objekte të botës reale dhe sjelljen e tyre, ndërsa AOP merret me zbërthimin e programeve për të ndarë shqetësimet ndërsektoriale.
Çfarë është AOP?
AOP është një paradigmë programimi, e cila merret me zbërthimin e një programi në zona kohezive të funksionalitetit (të quajtura shqetësime) që përshkojnë zona të shumta, në mënyrë që të rritet modulariteti. Mbështetja për abstraksione (të tilla si klasa, metoda, etj.) për të grupuar dhe përmbledhur shqetësimet në entitete unike ofrohet në shumë paradigma të tjera programimi. Por shqetësimet (të tilla si “Logging”) janë shembuj të shqetësimeve ndërsektoriale, sepse çdo pjesë e regjistruar e sistemit ndikohet nga strategjia e përdorur për regjistrimin. Fokusi kryesor i të gjitha zbatimeve të AOP është që të ketë shprehje të përshtatshme ndërsektoriale për të kapur të gjitha shqetësimet në një vend të vetëm.
Çfarë është OOP?
Në OOP, fokusi është në të menduarit për problemin që do të zgjidhet në termat e elementeve të botës reale dhe përfaqësimi i problemit për sa i përket objekteve dhe sjelljes së tyre. Klasat përshkruajnë paraqitjet abstrakte të objekteve të botës reale. Klasat janë si projekte ose shabllone, të cilat mbledhin artikuj ose gjëra të ngjashme që mund të grupohen së bashku. Klasat kanë veti të quajtura atribute. Atributet zbatohen si variabla globale dhe instancë. Metodat në klasa përfaqësojnë ose përcaktojnë sjelljen e këtyre klasave. Metodat dhe atributet e klasave quhen anëtarë të klasës. Një shembull i një klase quhet objekt. Prandaj, një objekt është një strukturë të dhënash që i ngjan shumë një objekti të botës reale.
Ekzistojnë disa koncepte të rëndësishme OOP si Abstraksioni i të dhënave, Enkapsulimi, Polimorfizmi, Mesazhimi, Modulariteti dhe Trashëgimia. Në mënyrë tipike, kapsulimi arrihet duke i bërë atributet private, duke krijuar metoda publike që mund të përdoren për të hyrë në ato atribute. Trashëgimia i lejon përdoruesit të zgjerojë klasat (të quajtura nënklasa) nga klasa të tjera (të quajtura super klasa). Polimorfizmi i lejon programuesit të zëvendësojë një objekt të një klase në vend të një objekti të super klasës së tij. Në mënyrë tipike, emrat që gjenden në përkufizimin e problemit bëhen drejtpërdrejt klasa në program. Dhe në mënyrë të ngjashme, foljet bëhen metoda. Disa nga gjuhët më të njohura OOP janë Java dhe C.
Cili është ndryshimi midis AOP dhe OOP?
Dallimi kryesor midis OOP dhe AOP është se fokusi i OOP është të zbërthejë detyrën e programimit në objekte, të cilat përmbledhin të dhënat dhe metodat, ndërsa fokusi i AOP është të zbërthejë programin në shqetësime ndërsektoriale.. Në fakt, AOP nuk është një konkurrent për OOP, sepse ajo doli jashtë paradigmës OOP. AOP zgjeron OOP duke adresuar disa nga problemet e tij. AOP prezanton mënyra të rregullta për të zbatuar shqetësimet ndërsektoriale (të cilat mund të jenë shpërndarë në disa vende në zbatimin përkatës të OOP) në një vend të vetëm. Prandaj, AOP e bën programin më të pastër dhe më lirshëm.