Author: Uğur Uçar

Decorator Pattern

Decorator tasarım kalıbı, bir sınıfın mevcut yapısına müdahale etmeden, ona runtime esnasında yeni özellikler kazandırabilmek adına kullanabileceğimiz bir yapısal tasarım kalıbıdır. Kalıbın yapısı diğer kalıpları andırsa da, odaklandığı nokta benzer yapıları kullanarak farklı yapılar oluşturmaktır. Bunu benzer boydaki ve tipteki legoları birleştirerek oda, ev, apartman, site yaptığınız bir çözüm olarak düşünebilirsiniz. Bir alışveriş sitesini düşündüğümüzde, […]

Composite Pattern

Yapısal tasarım kalıplarımız arasında bulunan composite pattern, hiyerarşik veya konsept olarak tekrarlı ilişkilerin bulunduğu durumlar için kullanabileceğimiz bir tasarım kalıbıdır. Composite tasarım kalıbını diğer yapısal kalıplardan ayıran en belirgin özelliği, bir ebeveyn nesneye birden fazla alt obje bağlanabilmesi ve bunun alt düğümlerde yine aynı şekilde devam edebilmesidir. Bu kalıp için departmanlar arası gezen bir duyuruyu […]

Bridge Pattern

Bridge pattern yapısal kompozisyonlara yönelik üretilen çözümlerden bir tanesidir. Bir sınıfın içerisinde bulunan elemanların çeşitlilik yarattığı durumlarda oluşan karmaşayı çözmektedir. Bu çeşitliliği yaratan yapıların ana sınıftan soyutlanması ile ana sınıfın implementasyon detaylarını bilmesinden kurtulmuş oluruz. Bu tasarım kalıbını daha net bir örnekle açıklamak için bir kurguya gidelim. Günümüzde bazı şirketler müşterilerine reklam veya bilgilendirme amaçlı […]

Adapter Pattern

Structural yani yapısal veya yapıların kompozisyonuna dayalı olarak ilk inceleyeceğimiz tasarım kalıbı adapter pattern olacaktır. Bu kalıp birbirinden bağımsız iki ayrı yapının kullanımını kombine etmek üzerine kurulmuştur. İsminden de anlaşılacağı üzere, entegrasyon için birbirine uymayan iki yapının birbirine “adapte” edilmesi bu kalıbın ana hedefidir. Geçtiğimiz yıllarda Apple şirketi radikal bir karar ile telefonlarından standart 3.5 […]

Singleton Pattern

Nesne yaratma süreçleri ile ilgilenen son kalıbımız olan singleton pattern bu yazımızın konusu olacaktır. Singleton tasarım kalıbı en sık kullanılan kalıplardandır. Özellikle spring gibi dependency injection yönetimi yapan frameworklerin popülerliği arttıkça, farkında olmadan da kullandığımız bu kalıbın temelinde, bir sınıfa ait birden fazla nesne yaratılamaması prensibi yatmaktadır. Bu cümle size “O sınıfa ait tanımlı bir […]

Prototype Pattern

Bir başka creational, yani nesne yaratma süreçleriyle ilgilenen, tasarım kalıbımız olan prototype pattern, nesne kopyalama ihtiyaçlarımıza karşılık veren bir kalıptır. Tarihin eski dönemlerinde, henüz sanayileşme gerçekleşmemişken, üretim yapmak ustaların maharetine bakardı. Özellikle benzer nitelikte bir ürünü ortaya çıkarmak ciddi zaman alan bir iş idi. İnsanlık bir süre sonra bu tarz durumlara alternatif çözümler üretme arayışına […]

Builder Pattern

Nesne yaratma ile ilgilenen tasarım kalıplarımızdan builder pattern bu yazımızın konusu olacak. Bu tasarım kalıbımız nesne yaratması kompleksleşmiş sınıflarımız için elverişli bir kalıptır. Detaylara girmeden evvel belirteyim ki Lombok gibi projelerin sağladığı çözümler artık bu tasarım kalıbının uygulanmasını kolaylaştırmıştır. Her ne kadar bu kalıbı artık bir annotasyon seviyesinde uygulamak mümkün olsa da, o annotasyonun arkasında […]

Abstract Factory Pattern

Bir başka creational tasarım kalıbı olan abstract factory pattern, factory pattern şablonuna çok yakın bir yaklaşım ile oluşturulmuştur. Factory üzerine fazladan bir soyutlama katmanı ekleyerek, abstract factory patterni uygulamak mümkündür. Bu kalıp, birden fazla factory sınıfının bir arada bulunması ve uygulamanın hangi factory ile iş yapacağını belirlemesinin giderek zorlaştığı durumları ele alır ve çözer. Factory […]

Factory Pattern

Factory pattern en yaygın tasarım kalıplarındandır. Yapı itibari ile creational, yani obje yaratma süreçleriyle ilgilenen bir kalıptır. Benzer özellikleri taşıyan, ayrı obje türlerinin yaratılması esnasında, bu farklı objelerin yaratılma sürecinin, tüketici sınıf veya uygulama tarafından bilinmesinin gereksiz olduğu mantığı üzerine kurulu şekilde konumlanır. Bu kalıbı genel bir tanım ihtiyacı olduğunda ve bu tanımın detaylarının soyutlanması […]

Design Patterns

Yazılım geliştirme esnasında sıkça karşılaşılan sorunlar için, sıkça kullanılan çözümler vardır. Bunlar tıpkı bir şablon gibidir ve ilgili sorun ile ile karşılaşıldığında uygulanırlar. Bu çözümler döngüler, diziler gibi temel kavramlardan daha uzak, nispeten daha karmaşık yapılardır. Bu çözümler bir kütüphane gibi kullanabileceğiniz hazır yapılar olmaktan ziyade, fikir seviyesindedir ve haliyle soyuttur. Yazılımın özellikle mimarisini ilgilendiren […]

Next Page »