hayret lan açmamışlar. siftah benden haydi
(bkz:
object oriented programming)
Nesne yönelimli programlama (NYP), (ingilizce:Object Oriented Programming) özetle bir bilgisayar programlama yaklaşımıdır. Günümüzde pekçok çağdaş programlama dili tarafından desteklenmektedir.
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 (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 progrdıbı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. Hâlbuki 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.
Tasarım Şablonları
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 Şablonları denir (ingilizce - 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 şablonu içeren kitaptır. Bu tasarım şablonları Oluşturucu Tasarım Şablonları, Yapısal Tasarım Şablonları, Davranışsal Tasarım Şablonları olmak üzere üç kategoriye ayrılır.
Oluşturucu Tasarım Şablonları
Teklik(Singleton) Tasarım Şablonu
Fabrika(Factory) Tasarım Şablonu
Soyut Fabrika(Abstract Factory) Tasarım Şablonu
inşaatcı (Builder) Tasarım Şablonu
Prototip(Prototype) Tasarım Şablonu
Yapısal Tasarım Şablonları
Adaptör(Adapter) Tasarım Şablonu
Vekil(Proxy) Tasarım Şablonu
Köprü (Bridge) Tasarım Şablonu
Cephe(Façade) Tasarım Şablonu
Dekoratör (Decorator) Tasarım Şablonu
Kompozit (Composite) Tasarım Şablonu
Sinek giblet (Flyweight) Tasarım Şablonu
Davranışsal Tasarım Şablonları
Strateji (Strategy) Tasarım Şablonu
Durum (State) Tasarım Şablonu
Yineleyici (Iterator) Tasarım Şablonu
Memento Tasarım Şablonu
Observer Tasarım Şablonu
Sorumluluk Zinciri(Chain of Responsibility) Tasarım Şablonu
Ziyaretçi(Visitor) Tasarım Şablonu
Şablon (Template) Tasarım Şablonu
Komut (Command) Tasarım Şablonu
Aracı (Mediator Tasarım Şablonu)