Nesne yönelimli programlama: Revizyonlar arasındaki fark

[kontrol edilmemiş revizyon][kontrol edilmemiş revizyon]
İçerik silindi İçerik eklendi
Khutuck Bot (mesaj | katkılar)
k Bot:Otomatik yönlendirme düzeltmesi.
SilvonenBot (mesaj | katkılar)
k r2.5.4) (Bot değişikliği Değiştiriliyor: he:תכנות מונחה-עצמים
1. satır:
'''Nesne yönelimli programlama''' ('''NYP'''), (İngilizce:''Object Oriented Programming'') özetle bir bilgisayar programlama yaklaşımıdır. Günümüzde pekçok çağdaş [[programlama dili]] tarafından desteklenmektedir.
#YÖNLENDİR [[Nesne Yönelimli Programlama]]
 
[[Dosya:UygulamaBakimMaliyeti.PNG|right|250px|thumb|NYP'dan önceki uygulamaların bakım maliyeti ve karmaşıklık ilişkisi]]
[[1960]]'lı yılların sonuna doğru ortaya çıkan bu yaklaşım, o dönemin yazılım dünyasında beliren bir bunalımın sonucudur. Yazılımların karmaşıklığı ve boyutları sürekli artıyor, ancak belli bir nitelik düzeyi korumak için gereken bakımın maliyeti zaman ve çaba olarak daha da hızlı artıyordu. NYP'yi bu soruna karşı bir çözüm haline getiren başlıca özelliği, yazılımda birimselliği (modularity) benimsemesidir. NYP ayrıca, bilgi gizleme (information hiding), [[veri soyutlama]] (data abstraction), [[çok biçimlilik]] (polymorphism) ve [[kalıtım (programlama)|kalıtım]] (inheritance) gibi yazılımın bakımını ve aynı yazılım üzerinde birden fazla kişinin çalışmasını kolaylaştıran kavramları da yazılım literatürüne kazandırmıştır. Sağladığı bu avantajlardan dolayı, NYP günümüzde geniş çaplı yazılım projelerinde yaygın olarak kullanılmaktadır.
 
NYP'nın altında yatan birimselliğin ana fikri, her bilgisayar programının (izlence), etkileşim içerisinde olan birimler veya nesneler kümesinden oluştuğu varsayımıdır. Bu nesnelerin her biri, kendi içerisinde veri işleyebilir, ve diğer nesneler ile çift yönlü veri alışverişinde bulunabilir. Halbuki NYP'den önce var olan tek yaklaşımda ([[Yordamsal programlama]]), programlar sadece bir komut dizisi veya birer işlev (fonksiyon) kümesi olarak görülmektediler.
 
 
[[Nesne yönelimli programlama dilleri]] yukarıda adı geçen tüm öğelere sahip olurken, [[Visual Basic]] gibi [[Nesne tabanlı programlama dili|nesne tabanlı programlama dilleri]] birkaçından yoksundur.
 
== Tasarım Örüntüleri ==
Nesneye yönelik tasarım esnasında bazı sorunlara sıkça rastlanır. Bu sık rastlanan sorunlara karşı yaygın olarak kabul edilmiş çözümler de mevcuttur. Bu çözümlere ''[[tasarım örüntüleri]]'' denir (İngilizce - Design patterns). Bu alanda en çok tanınmış kaynak, [[Erich Gamma]], [[Richard Helm]], [[Ralph Johnson]] ve [[John Vlissides]] tarafından yazılmış ''Design Patterns: Elements of Reusable Object-Oriented Software'' adlı, en sık kullanılan 23 tasarım örüntüsünü içeren kitaptır. Bu tasarım örüntüleri ''[[Oluşturucu Tasarım Örüntüleri]]'', ''[[Yapısal Tasarım Örüntüleri]]'', ''[[Davranışsal Tasarım Örüntüleri]]'' olmak üzere üç kategoriye ayrılır.
=== Oluşturucu Tasarım Örüntüleri ===
Teklik(Singleton) Tasarım Örüntüsü<br />
Fabrika(Factory) Tasarım Örüntüsü<br />
Soyut Fabrika(Abstract Factory) Tasarım Örüntüsü<br />
Builder(İnşaatcı) Tasarım Örüntüsü<br />
Prototip(Prototype) Tasarım Örüntüsü<br />
 
=== Yapısal Tasarım Örüntüleri ===
Adaptör(Adapter) Tasarım Örüntüsü<br />
Vekil(Proxy) Tasarım Örüntüsü<br />
Köprü (Bridge) Tasarım Örüntüsü<br />
Cephe(Façade) Tasarım Örüntüsü<br />
Dekoratör (Decorator) Tasarım Örüntüsü<br />
Kompozit (Composite) Tasarım Örüntüsü<br />
Sinek Siklet (Flyweight) Tasarım Örüntüsü
 
=== Davranışsal Tasarım Örüntüleri ===
Strateji (Strategy) Tasarım Örüntüsü<br />
Durum (State) Tasarım Örüntüsü<br />
Yineleyici (Iterator) Tasarım Örüntüsü<br />
Memento Tasarım Örüntüsü<br />
Observer Tasarım Örüntüsü<br />
Sorumluluk Zinciri(Chain of Responsibility) Tasarım Örüntüsü<br />
Ziyaretçi(Visitor) Tasarım Örüntüsü<br />
Şablon (Template) Tasarım Örüntüsü<br />
Komut (Command) Tasarım Örüntüsü<br />
Aracı (Mediator Tasarım Örüntüsü)<br />
 
== Tarihçe ==
 
 
== Ayrıca Bakınız ==
* [[Nesne tabanlı programlama dili]]
* [[Nesne Yönelimli Çözümleme ve Tasarım]]
* [[CORBA]]
* [[Soyutlama (Bilgisayar Bilimleri)]]
* [[Sarma (Bilgisayar Bilimleri)]]
* [[Tasarım Örüntüleri]]
 
== Dış Bağlantılar ==
* [http://ninova.itu.edu.tr/tr/dersler/elektrik-elektronik-fakultesi/21/blg-252e/ İTÜ Ninova Açık Ders Malzemeleri], Nesne Yönelimli Programlama
* [http://www.mmistanbul.com/ders/section/tags/etiket/oop/tag/1752/ Actionscript ve Nesne Yönelimli Programlama (OOP)] (Türkçe)
 
[[Kategori:Nesne yönelimli programlama]]
 
{{Link SM|vi}}
 
[[af:Objekgeoriënteerde programmering]]
[[ar:برمجة كائنية التوجه]]
[[be:Аб'ектна-арыентаванае праграмаванне]]
[[be-x-old:Аб’ектна-арыентаванае праграмаваньне]]
[[bg:Обектно-ориентирано програмиране]]
[[bn:অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং]]
[[bs:Objektno orijentisano programiranje]]
[[ca:Programació orientada a objectes]]
[[cs:Objektově orientované programování]]
[[da:Objektorienteret programmering]]
[[de:Objektorientierte Programmierung]]
[[el:Αντικειμενοστρεφής προγραμματισμός]]
[[en:Object-oriented programming]]
[[eo:Objektema programado]]
[[es:Programación orientada a objetos]]
[[et:Objektorienteeritud programmeerimine]]
[[eu:Objektuei orientatutako programazio]]
[[fa:برنامه‌نویسی شئ‌گرا]]
[[fi:Olio-ohjelmointi]]
[[fr:Programmation orientée objet]]
[[gl:Programación orientada a obxectos]]
[[he:תכנות מונחה-עצמים]]
[[hr:Objektno orijentirano programiranje]]
[[hu:Objektumorientált programozás]]
[[id:Pemrograman berorientasi objek]]
[[io:Objekt-orientizita programifo]]
[[is:Hlutbundin forritun]]
[[it:Programmazione orientata agli oggetti]]
[[ja:オブジェクト指向]]
[[ka:ობიექტურად ორიენტირებული პროგრამირება]]
[[ko:객체 지향 프로그래밍]]
[[lt:Objektinis programavimas]]
[[lv:Objektorientētā programmēšana]]
[[mk:Објектно-ориентирано програмирање]]
[[mn:Объект хандалтат програмчлал]]
[[ms:Pengaturcaraan berorientasi objek]]
[[nl:Objectgeoriënteerd]]
[[no:Objektorientert programmering]]
[[pl:Programowanie obiektowe]]
[[pt:Orientação a objetos]]
[[ro:Programare orientată pe obiecte]]
[[ru:Объектно-ориентированное программирование]]
[[rue:Обєктово орьєнтоване проґрамованя]]
[[scn:Prugrammazzioni urientata all'uggetta]]
[[sh:Objektno orijentisano programiranje]]
[[simple:Object-oriented programming]]
[[sk:Objektové programovanie]]
[[sq:Programimi i orientuar në objekte]]
[[sr:Објектно-оријентисано програмирање]]
[[sv:Objektorienterad programmering]]
[[ta:பொருள் நோக்கு நிரலாக்கம்]]
[[th:การเขียนโปรแกรมเชิงวัตถุ]]
[[uk:Об'єктно-орієнтоване програмування]]
[[ur:برمجہ شئے التوجہ]]
[[vi:Lập trình hướng đối tượng]]
[[wuu:面向对象程式编制]]
[[zh:面向对象程序设计]]