Swift Notları — 4 Generic Kavramı

Çağatay Yıldız
BilgeAdam Teknoloji
3 min readJan 3, 2022

Swift dilinde Generic kavramı bize tip bağımsız işlem yapmamızı sağlıyor. Function, class, struct gibi yapılarımızı generic keywordlerle sarmallayarak gelen tipe göre harekete etmesini sağlayabiliriz. Böylelikle kimi kod bloklarınının yenilenmesini önleyerek daha esnek ve sağlıklı bir geliştirme ortamını bu yapılarla kurabiliriz.

Örneğin elimizdeki bulunan dizinin elemanlarını print eden bir fonksiyon yazacağız.

Yukarıda belirtilen fonksiyonu dilediğimiz tiple çalıştırabiliriz. Böylelikle fonksiyonu tip bağımsız bir hale getirmiş olduk.

Bir fonksiyon gibi struct bir yapıyı da generic tanımlamamız mümkün. Swift resmi dökümantasyonunda şöyle bir örnek paylaşıyor.

Bu Stack isimli struct dışarıdan aldığı tipe göre push ve pop fonksiyonlarını yönetmekte.

Yukarıda görüldüğü üzere String tipte oluşturduğumuz Stack isimli struct o tipe göre hareket ediyor.

Generic Repository Pattern

Generic yapılar özellikle data yoğun uygulamalarda işimize yaramakta. Restful bir servisle olan ilişkimizi Generic bir yapı kullanıp oluşturduğumuz repository patternle rahatça yönetebiliriz. Alamofire kütüphanesini kullanarak oluşturduğumuz Generic Repository şu şekilde:

Yukarıdaki örnekte Generic yapısını kullanarak GetAll, Add ve Delete fonksiyonunu dinamik hale getirdik. Aynı zamanda alacağımız Generic yapıyı where anahtar kelimesi ile kısıtlamış olduk.( Bu repository sadece Codable olan yapılarla kullanılabilir dedik. )

Örnek kullanımı ise şu şekilde:

Yukarıdaki kod bloğunda GenericRepositoryi UserListModel ile ayağa kaldırdık. Github adresinden kullanım detaylarını görmemiz mümkün. Bir sonraki yazıda görüşmek üzere.

Kaynak

--

--