Diyelim ki Harita döndürmesi gereken bir yöntem yazıyorum . Örneğin:
public Map<String, Integer> foo() {
return new HashMap<String, Integer>();
}
Bir süre düşündükten sonra, bu haritayı oluşturulduktan sonra değiştirmek için hiçbir neden olmadığına karar verdim. Bu nedenle, bir ImmutableMap döndürmek istiyorum .
public Map<String, Integer> foo() {
return ImmutableMap.of();
}
Dönüş türünü genel bir Harita olarak bırakmalı mıyım yoksa bir ImmutableMap döndürdüğümü belirtmeli miyim?
Bir taraftan, arayüzlerin tam olarak neden yaratıldığı; uygulama ayrıntılarını gizlemek için.
Öte yandan, bunu böyle bırakırsam, diğer geliştiriciler bu nesnenin değişmez olduğu gerçeğini gözden kaçırabilir. Böylece, değişmez nesneler gibi büyük bir hedefe ulaşamayacağım; değişebilecek nesnelerin sayısını en aza indirerek kodu daha net hale getirmek için. Daha da kötüsü, bir süre sonra birisi bu nesneyi değiştirmeye çalışabilir ve bu bir çalışma zamanı hatasıyla sonuçlanır (Derleyici bu konuda uyarmaz).