AOP ve OOP Karşılaştırması
AOP (En Boy Odaklı Programlama) ve OOP (Nesne Odaklı Programlama) iki programlama paradigmasıdır. Programlama paradigması, bilgisayar programlamanın temel bir stilidir. Programlama paradigmaları, programların her bir öğesinin nasıl temsil edildiği ve sorunların çözümü için her adımın nasıl tanımlandığı konusunda farklılık gösterir. Adından da anlaşılacağı gibi, OOP gerçek dünyadaki nesneleri ve davranışlarını kullanan sorunları temsil etmeye odaklanırken, AOP çapraz kesişen endişeleri ayırmak için programları parçalamakla ilgileniyor.
AOP nedir?
AOP, modülerliği arttırmak için, birden fazla alanı kesen uyumlu işlevsellik alanlarına (endişe adı verilen) bir programın parçalanmasıyla ilgilenen bir programlama paradigmasıdır. Endişeleri benzersiz varlıklara gruplamak ve kapsüllemek için soyutlamalar (sınıflar, yöntemler vb.) İçin destek, diğer birçok programlama paradigmasında sağlanır. Ancak endişeler (“Günlük tutma” gibi) kesişen kaygılara örnektir, çünkü sistemin kaydedilen her kısmı günlük kaydı için kullanılan stratejiden etkilenir. Tüm AOP uygulamalarının ana odağı, tüm endişeleri tek bir yerde yakalamak için uygun kesişen ifadelere sahip olmaktır.
OOP nedir?
OOP'ta odak noktası, gerçek dünya unsurları açısından çözülecek problemi düşünmek ve problemi nesneler ve davranışları açısından temsil etmektir. Sınıflar gerçek dünyadaki nesnelerin soyut temsillerini betimler. Sınıflar, benzer öğeleri veya birlikte gruplandırılabilecek şeyleri toplayan taslaklar veya şablonlar gibidir. Sınıflar öznitelik adı verilen özelliklere sahiptir. Öznitelikler global ve örnek değişkenler olarak uygulanır. Sınıflardaki yöntemler, bu sınıfların davranışlarını temsil eder veya tanımlar. Sınıfların yöntemleri ve nitelikleri sınıfın üyeleri olarak adlandırılır. Sınıf örneğine nesne denir. Bu nedenle, nesne gerçek dünyadaki bazı nesnelere çok benzeyen bir veri yapısıdır.
Veri soyutlama, Kapsülleme, Polimorfizm, Mesajlaşma, Modülerlik ve Kalıtım gibi birçok önemli OOP kavramı vardır. Tipik olarak, kapsülleme, öznitelikleri özel hale getirerek ve bu özniteliklere erişmek için kullanılabilecek genel yöntemler oluşturularak elde edilir. Kalıtım, kullanıcının sınıfları (alt sınıflar olarak adlandırılır) diğer sınıflardan (süper sınıflar olarak adlandırılır) genişletmesine olanak tanır. Polimorfizm, programcının süper sınıfının bir nesnesi yerine bir sınıfın bir nesnesini değiştirmesine izin verir. Tipik olarak, problem tanımında bulunan isimler doğrudan programda sınıf haline gelir. Ve benzer şekilde, fiiller yöntem haline gelir. En popüler OOP dillerinden bazıları Java ve C #.
AOP ve OOP arasındaki fark nedir?
OOP ve AOP arasındaki temel fark, OOP'un odağının, programlama görevini veri ve yöntemleri kapsayan nesnelere ayırmak olduğu, AOP'un odağı ise endişeleri kesen programa ayırmaktır. Aslında, AOP, OOP için bir rakip değildir, çünkü OOP paradigmasından ortaya çıkmıştır. AOP, sorunlarının birkaçını ele alarak OOP'yi genişletir. AOP, kesişen endişeleri (karşılık gelen OOP uygulamasında birkaç yere dağılmış olabilir) tek bir yerde uygulamak için düzgün yollar sunar. Bu nedenle, AOP programı daha temiz ve daha gevşek bir şekilde birleştirir.