JS ILE FONKSIYONEL PROGRAMLAMA
Object Composition — 4(Aggregation, Concatenation Delegation)
Object yapıları oluşturmanın farklı formaları bulunur, Bunlar Aggregation, Concatenation ve Delegation. Bu yazıda bu farklı obje oluşturma formları üzerinde duruyor olacağız.
--
Object Oriented Programlamadaki Kavramlar
Öncelikle buradaki kavramlar birazda JavaScript üzerinden olduğu için öncelike OOP(Object Oriented Programlama) yer alan Association, Composition ve Aggregation kavramlarından bahsedelim
Association : 2 nesnenin birbirisi arasındaki ilişkiyi tanımlar. Bu ilişki 1–1, 1 — n, n — 1 veya n — n olabilir. Yani A nesnemiz B den bir tane veya daha çok tutabilir.
Aggregation: Bizim A nesnemiz birden fazla B nesnesinden tuttuğu ilişki türleri için bizim array, stack, queue vb… diğer nesneden birçok tuttuğumuz ilişki (association) türüne denir
Composition: Bu Aggregation ilişkisinin Has-A(sahiplik) yerine Part-Of(parçası) olması durumuna denir. Yani ilişkinin kuvvetini gösterir. Kuvvetli olan ilişki için composition diyoruz. Örneğin bir okul → birden fazla Sınf, bu sınıflar içerisinde → birden fazla öğrenci olsun.
- Okul → Sınıflar arasında (Part Of) → Composition ilişkisi varken
- Sınıflar → Öğrenciler arasında (Has-A) → Sahiplik ilişkisi vardır.
Fonksiyonel Programlama Object Composition
Bu kısımda Eric Eliott Object Composition yazısından devam edelim. Object Composition 3 farklı formu bulunuyor.
Aggregation: Nesnemiz üzerinde gezilebilen, erişilebilen diğer objeleri tutma yöntemi ile object composition yaptığımız durumlar.
- Arrays
- Maps
- Sets
- Graphs
- Trees
- DOM nodes (a DOM node may contain child nodes)
- UI components (a component may contain child components)
Concatenation: Mevcut nesneye özellikler ekleyerek veya clonelarak objenin içerisine atarak büyüttüğümüz kısımlar.
- Plugins
jQuery.fn
concatenation yöntemi ile eklenir. - State reducers (e.g., Redux)Functional mixins
Delegation: Mevcut nesnenin diğer nesneye delegate ederek (aktararak) ordaki davranışları çağırdığı durum.
- JS prototype chain.
- jQuery plugins delegation yöntemini kullanarak objelerin çağrımını gerçekleştirir.
Referanslar
Okumaya Devam Et 😃
Bu yazının devamı veya yazı grubundaki diğer yazılara erişmek için bu linke tıklayabilirsiniz.