Eğer doğru başarı demekse, o zaman iyi, açık bir koddur.
Bir işlev veya yöntemin başarı üzerine doğru (veya doğru olarak değerlendirilen bir şey) döndürdüğü yaygın bir kural vardır. Kodunuzu takip ettiği sürece, yöntemi koşullu koymak iyi olduğunu düşünüyorum.
Böyle bir kod benim görüşüme göre gereksiz bir şekilde dağınık:
boolean frobulate_succeeded = thing.frobulate();
if (frobulate_succeeded) {
...
}
Kendinizi tekrarlıyormuşsunuz gibi geliyor.
Ancak, soru dönüş değerinin anlamı konusunda belirsizdir. "Eklenen öğenin zaten var olup olmadığını gösteren bir boolean" diyorsunuz, bu doğru öğenin var olduğu (ve ekleme gerçekleşmediği) anlamına gelebilir. Bu durumda, ideal olarak yöntemin geri dönüş davranışını daha geleneksel olacak şekilde değiştirirdim. Bu mümkün değilse, açıkça (başkaları tarafından önerildiği gibi) kodunuzdaki dönüş sonucu etiketlemek için izin veren ekstra bir ara değişken eklemek istiyorum.
java.util.Set
doğru olan standarttan bahsediyorsunadd
, değil mi?