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 Ts 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.