Nếu đúng có nghĩa là thành công, thì đó là mã tốt, rõ ràng.
Có một quy ước phổ biến rằng một hàm hoặc phương thức trả về giá trị true (hoặc một cái gì đó đánh giá là đúng) về thành công. Miễn là mã của bạn tuân theo điều đó, tôi nghĩ việc đưa phương thức vào điều kiện là ổn.
Mã như thế này là lộn xộn không cần thiết trong quan điểm của tôi:
boolean frobulate_succeeded = thing.frobulate();
if (frobulate_succeeded) {
...
}
Cảm giác như bạn đang lặp lại chính mình.
Tuy nhiên, câu hỏi mơ hồ về ý nghĩa của giá trị trả về. Bạn nói "một boolean cho biết phần tử đã thêm đã tồn tại chưa", điều này có thể ngụ ý rằng true có nghĩa là phần tử tồn tại (và phần bổ sung không xảy ra). Nếu đó là trường hợp, tôi lý tưởng sẽ thay đổi hành vi trả về của phương thức thành thông thường hơn. Nếu điều đó là không thể, tôi sẽ thêm một biến trung gian bổ sung cho phép bạn dán nhãn rõ ràng kết quả trả về trong mã của bạn (như được đề xuất bởi người khác).
java.util.Set
, sẽ trả về đúngadd
khi phần tử chưa có, phải không?