TASARIM ÖRÜNTÜLERİ

Composite

Structural Patterns bir örneği olan Composite örüntü ağaç veri yapısında olan kendi içerisinde kendi türünden çocuk sınıflar tutan ve belli ortak işlevleri getirebilen yapılar için kullanılan bir örüntüdür.

Onur Dayıbaşı
Design Patterns

--

Bilgi Notu: Diğer tüm Tasarım Örüntüleri yazıma bu linkten ulaşabilirsiniz.

Hangi Durumda

Ağaç veri yapısı türünde olup örneğin ortak bir method içeriyorsa

  • hoverInput→ Menu yapıları (PopupMenu, Menus, TreeMenu vb..),
  • draw → UI Component yapıları (JPanel, JTextfield vb..)
  • calculateSize → Klasör ve Dosya yapıları

Bu durumda Composite(iç içe bir yapı) oluşturup iç içe recursive fonksiyonların çağrımların yapılması sağlanır

Yapısı

Composite Class Diagram

Kod

code from https://sourcemaking.com/design_patterns/composite/java/1

Bu kod örneğinden de görebileceğiniz gibi

  • AbstractFile : Tüm elementlerin gerçekleştireceği metodu belirleyen arayüz.
  • File ve Directory : Bu yapıdan AbstractFile türüyor ama Directory kendi içerisinde AbstractFile türünde başka nesneleride barındırıyor.

ls() komutunu çağırdımızda File sadece kendi ismini yazarken, Directory tüm child elemanlarının ls() komutunu çağırdıktan sonra kendi ismini yazıyor.

Bu sayede hiyerarşik olarak tüm elemanlar üzerindeki metotlar çağrılmış oluyor.

Okumaya Devam Et 😃

Bu yazının devamı veya yazı grubundaki diğer yazılara erişmek için bu linke tıklayabilirsiniz.

--

--