Əsas Fərq – OOP vs POP
OOP və POP arasındakı fərqi müzakirə etməzdən əvvəl gəlin əvvəlcə proqramlaşdırma prosesinin bəzi əsas anlayışlarına nəzər salaq. Proqramlaşdırmadan istifadə edərək müxtəlif növ problemlər üçün həllər qurarkən proqramlaşdırma prosesinə çoxlu müxtəlif yanaşmalar mövcuddur. Bu yanaşmalar proqramlaşdırma paradiqmaları kimi tanınır. Əksər proqramlaşdırma dilləri bir paradiqmanın altına düşür, lakin çoxlu paradiqmanın elementlərinə malik dillər ola bilər. Obyekt yönümlü proqramlaşdırma (OOP) və prosedur yönümlü proqramlaşdırma (POP) iki belə proqramlaşdırma paradiqmasıdır. Bu iki paradiqma əsasən bir həll dizayn edərkən yaratdıqları abstraksiyalara görə fərqlənir. Proqramlaşdırma yanaşmasındakı abstraksiya məlumatın aktuallığını istifadəçi nöqteyi-nəzərindən ayırır. POP və OPP arasındakı əsas fərq ondan ibarətdir ki, POP prosedur abstraksiyaları yaradır və istifadə edir, OOP isə məlumat abstraksiyalarına diqqət yetirir.
OOP nədir?
Obyekt yönümlü proqramlaşdırma (OOP) iki əsas konsepsiyaya əsaslanır; obyektlər və siniflər. Obyektlər həm verilənləri, həm də həmin verilənlər üzərində işləmək üçün prosedurları ehtiva edən strukturlardır. Bu obyektlər real dünya varlıqlarını modelləşdirmək üçün istifadə edilə bilər. Obyektlərin iki xüsusiyyəti var; vəziyyət və davranış. Siniflər verilmiş tip və ya obyektlər sinfi üçün məlumat formatlarını və prosedurlarını müəyyən edir. Başqa sözlə, sinif obyektin planıdır.
OOP yanaşması verilənlərin işlənməsi alqoritmindən çox, əsasən verilənlərə diqqət yetirir. Həm verilənlər, həm də həmin məlumatları idarə edən funksiyalar obyektlər daxilində yığıldığından, xarici funksiyalar tərəfindən verilənlər üzərində heç bir dəyişiklik edilə bilməz. Yəni obyektin məlumatlarına hər hansı digər obyektin funksiyaları ilə daxil olmaq mümkün deyil. Bu, proqramın məlumatlarının təhlükəsizliyini təmin edir. Ancaq bir obyektin funksiyaları başqa bir obyektin funksiyalarına daxil ola bilər, bu da obyektlərin bir-biri ilə əlaqə saxlamasına imkan verir. Bir obyektin metodlarının digər obyektin metodları ilə çağırılması mesaj ötürmə kimi tanınır.
OOP proqramlaşdırmanın dörd əsas xüsusiyyəti var; abstraksiya, inkapsulyasiya, polimorfizm və irsiyyət. Abstraksiyanın məqsədi istifadəçiyə yalnız müvafiq məlumatları göstərməkdir ki, problemin mürəkkəbliyi azalsın. İnkapsulyasiya məlumatın obyekt daxilində lokallaşdırılmasıdır. Bir sinfin digər sinfin xüsusiyyətlərini və funksiyalarını əldə etdiyi proses miras kimi tanınır. Polimorfizm çoxlu imzaya malik funksiyanın və ya bir çox fərqli tərzdə davranan obyektin xüsusiyyətidir.
OOP həmçinin yüksək modulluğu dəstəkləyir. Yeni funksiyaların və ya məlumatların əlavə edilməsi proqramın tam dəyişdirilməsini tələb etmir. Bu, sadəcə olaraq yeni bir obyekt yaratmaqla edilə bilər, çünki obyektlər elan etmək və müəyyən etmək üçün müstəqildir. Beləliklə, OOP səmərəli və yüksək məhsuldar ola bilər.
Proqramlaşdırma dizaynını nəzərə alaraq, OOP aşağıdan yuxarıya doğru yanaşmanı izləyir. Bəzi məşhur OOP dilləri Java, Python, Perl, VB. NET və C++-dır.
Python məşhur OOP dilidir.
POP nədir?
Prosedur yönümlü proqramlaşdırma (POP) problemə görüləcək işlərin ardıcıllığı kimi baxır və prosedur çağırışları konsepsiyasına əsaslanır. Proqramlar prosedurlar adlanan kiçik hissələrə bölünür - həmçinin rutinlər, alt proqramlar, metodlar və ya funksiyalar kimi tanınır. Prosedurlar proqramda edilməli olanların alqoritmini vurğulayır. Yəni bir prosedur yerinə yetirilməli olan bir sıra hesablama addımlarını ehtiva edir. Bu funksiyalar fəaliyyət yönümlü olduğundan, real dünya problemlərini modelləşdirərkən POP dillərindən istifadə bəzən çətin ola bilər.
POP kompüterə addım-addım nə edəcəyini bildirmək üçün təlimatlar siyahısının yazılmasına daha çox diqqət yetirir. Proqramla əlaqəli məlumatlara daha az diqqət yetirilir. Məlumatlar prosedurlar arasında ötürülə bilər və hər bir prosedur verilənləri bir formadan digərinə çevirir. Məlumatların əksəriyyəti qlobaldır və sistemdəki istənilən funksiyadan sərbəst şəkildə əldə edilə bilər. POP məlumatların gizlədilməsi üçün effektiv üsulları dəstəkləmədiyi üçün proqram təhlükəsiz ola bilər. Bəzi funksiyaların öz yerli datası ola bilər.
POP-da qlobal data əsasən funksiyalar arasında paylaşıldığından hansı məlumatların hansı funksiyalar tərəfindən istifadə edildiyini müəyyən etmək çətin ola bilər. Mövcud məlumatların dəyişdirilməsi zərurəti yaranarsa, həmin məlumatlara daxil olan bütün funksiyalar da yenidən nəzərdən keçirilməlidir. Bu, bütün proqrama təsir edə bilər və səhvlər və xətalar yarana bilər.
Proqramlaşdırma dizaynını nəzərə alaraq, POP dilləri yuxarıdan aşağıya yanaşmadan istifadə edir. POP dilləri icra mühitinin vəziyyətinə açıq istinadlar etdiyi üçün onlara imperativ dillər də deyilir. Bu cür POP dillərinə misal olaraq COBOL, Paskal, FORTRAN və C Dilini göstərmək olar.
C məşhur POP dilidir.
OOP və POP arasındakı fərq nədir?
OOP və POP tərifi
OOP: Obyekt yönümlü proqramlaşdırma məlumat abstraksiyalarına fokuslanan proqramlaşdırma paradiqmasıdır.
POP: Prosedur yönümlü proqramlaşdırma prosedur abstraksiyalarına fokuslanan proqramlaşdırma paradiqmasıdır.
OOP və POP Xüsusiyyətləri
Problem Ayrılma
OOP: OOP yanaşmasında proqramlar obyekt kimi tanınan hissələrə bölünür.
POP: POP yanaşmasında proqramlar funksiyalara bölünür.
Focus
OOP: OOP-un əsas diqqəti proqramla əlaqəli dataya yönəldilir.
POP: POP-un əsas diqqəti datanı manipulyasiya edən prosedurlar və alqoritmlər üzərindədir.
Dizayn yanaşması
OOP: OOP aşağıdan yuxarı yanaşmaya əməl edir.
POP: POP yuxarıdan aşağıya yanaşmaya əməl edir.
Verilənlərdən istifadə
OOP: OOP-da hər bir obyekt daxilindəki dataya nəzarət edir.
POP: POP-da əksər funksiyalar qlobal datadan istifadə edir.
Məlumatlara giriş
OOP: OOP-da obyektin məlumatlarına yalnız həmin xüsusi obyektin funksiyaları vasitəsilə daxil olmaq olar.
POP: POP-da data funksiyadan funksiyaya sərbəst hərəkət edə bilər.
Giriş Spesifikatorları
OOP: OOP İctimai, Şəxsi və s. kimi giriş spesifikatorlarına malikdir.
POP: POP-un heç bir giriş spesifikatoru yoxdur.
Məlumatların Təhlükəsizliyi
OOP: OOP məlumatların gizlədilməsini təmin etdiyi üçün proqramla əlaqəli data təhlükəsizdir.
POP: POP heç bir məlumat gizlətmə üsulunu təmin etmir. Buna görə də data daha az təhlükəsizdir.
Dəyişiklik Asanlığı
OOP: OOP mövcud proqrama yenidən baxmadan yeni məlumat və funksiyalar əlavə etməyin asan və səmərəli yollarını təqdim edir.
POP: POP-da yeni data və ya funksiyalar əlavə etmək lazımdırsa, mövcud proqrama yenidən baxılmalıdır.
İstifadə olunan Dillər
OOP: C++, Java, VB. NET, C. NET və s. OOP tərəfindən istifadə olunur.
POP: FORTRAN, Paskal, C, VB, COBOL və s. POP tərəfindən istifadə olunur.
Şəkil Nəzakəti: www.python.org tərəfindən “Python loqosu və söz nişanı” – https://www.python.org/community/logos/.(GPL) Rezonansowy tərəfindən Commons “The C Programming Language loqosu” vasitəsilə – Bu fayl əldə edilib: The C Programming Language, First Edition Cover.svg. Commons vasitəsilə (İctimai Domen)