Stream kullanmaya yeni başladıysanız alışmak zaman alabilir. Yapmak istediğiniz hesaplamayı stream hatları (stream pipeline) kullanarak ifade etmek zor gelebilir. Bunu başardığınız zaman da size pek bir faydası olmadığını düşünebilirsiniz. Streamler sadece yeni bir API değil, aynı zamanda bir fonksiyonel programlamaya yaklaşımıdır. Streamlerden en üst düzeyde faydalanabilmek için sadece API’ı değil…
1 CommentTag: lambda fonksiyonu
Java diline lambdalar eklendikten sonra API yazmanın kuralları değişti diyebiliriz. Örneğin, Template Method tasarım desenini gerçekleştirirken çocuk sınıfların ata sınıftaki soyut metotları geçersiz kılması artık pek de çekici değildir. Bunun daha modern olan alternatifi fonksiyon nesnesi kabul eden bir statik fabrika veya yapıcı metot yazmak olacaktır. Genel olarak şunu söyleyebiliriz,…
Leave a CommentLambda fonksiyonlarının isimsiz sınıflara göre avantajı daha kısa ve öz olmalarıdır. Java bizlere fonksiyon nesneleri tanımlamak için kullanılabilecek lambdadan daha kısa bir yol sunmaktadır: metot referansları. Şimdi elimizde belli anahtarları Integer değerlerine eşleştiren bir map olsun. Bu Integer değerler anahtarın veri yapısına kaç kere eklendiğini tutmaktadır. Yani ekleme işlemi yapılırken…
Leave a CommentEskiden beri tek bir soyut metodu olan arayüzler (veya çok nadir de olsa soyut sınıflar) fonksiyon türleri olarak kullanılmıştır. Bunların nesneleri de fonksiyon nesneleri olarak bilinirler ve bir işlevi veya eylemi temsil ederler. Java’nın ilk sürümünden itibaren fonksiyon nesneleri yaratmanın birincil yolu isimsiz sınıflar (anonymous class) kullanmaktı (Madde 24). Aşağıda…
Leave a Comment