Postel'in yasasının bir tahminini duymuş olabilirsiniz : "Gönderdiğiniz şeylerde muhafazakar olun, kabul ettiğiniz şeyde liberal olun."
Çoğunlukla kod yeniden kullanılabilirliğini en üst düzeye çıkarmakla ilgilidir. Neden işe yaradığını göstermek için dava açmak kolaydır. Java Iterable<T>
örneklerini ele alalım. Metodunuzun yaptığı tek şey, tüm T
s boyunca yineleniyorsa Iterable<T>
, parametre türünüz olarak sahip olmak, bu yöntemi, arayüzü uygulayan herhangi bir özel sınıftan bahsetmemek için 60'ın üzerinde yerleşik sınıfla kullanmanıza izin verir. Örneğin Vector<T>
, yönteminizi çağıran herhangi bir kodun birinciye dönüştürülmesi gerekir Vector<T>
.
Öte yandan, dönen bir Iterable<T>
bir yöntemi kullanırken bir alacak olanlara dönüş değerini kullanabilirsiniz kod miktarını sınırlayan Iterable<T>
parametre. Eğer çok somut türü dönerseniz, gibi Vector<T>
, sonra dönüş değeri bir alan herhangi bir yöntemle içine geçirilebilir Serializable
, Cloneable
, Iterable<T>
, Collection<T>
, List<T>
, RandomAccess
, Vector<T>
, AbstractList<T>
, veya AbstractCollection<T>
beklendiği gibi ve işe yarayacak.