2013-08-16 20 views
7

Câu hỏi này đã khiến tôi khá bực mình. Trong quá trình lập trình có câu hỏi thường xuyên cho dù có cái gì đó trong một đối tượng hay không. Vì lý do này là phương pháp isEmpty được phát minh. Tuyệt vời, nhưng trong thực tế, chúng tôi sử dụng nó như hầu như tất cả các thời gian.Tại sao luôn có isEmpty trong khi tôi sử dụng! IsEmpty 99% thời gian

Kết quả là, notEmpty sẽ là một bổ sung được đánh giá cao hơn nhiều đối với một ngôn ngữ như Java. Câu hỏi đặt ra là: tại sao các nhà thiết kế ngôn ngữ không nghĩ đến điều này trước khi xác định API? Ít nhất cung cấp cho một đối tác cho isEmpty

EDIT: Tôi có nghĩa là phải có một notEmpty cũng như isEmpty. Tùy thuộc vào tên miền, cả hai đều có thể được sử dụng nhưng trong hầu hết các trường hợp khi giao diện người dùng không được tham gia, tôi nghĩ rằng notEmpty sẽ áp dụng tốt hơn.

EDIT2: Để đóng các cuộc thảo luận, đây là một ví dụ:

!metadata.isEmpty() == metadata.notEmpty() 

Tôi muốn chúng tôi đã ở phía bên phải của phương trình là tốt.

+0

Tôi không đồng ý với 99% một phần. Tôi đã sử dụng isEmpty gần như 50% thời gian trong khi! IsEmpty cho phần còn lại của thời gian. –

+2

Tại sao không? Chỉ vì bạn sử dụng '! IsEmpty' không có nghĩa là mọi cơ thể khác ... Cá nhân, tôi nghĩ rằng câu lệnh hợp lý hơn - IMHO – MadProgrammer

+1

Nếu bất cứ điều gì, có một tên phương thức bắt đầu bằng' is' là nhất quán hơn một bắt đầu bằng ' không phải. –

Trả lời

6

isEmpty theo quy ước đặt tên của isXXX phương pháp cú pháp tích cực khác như isVisibleisEnabled

+2

Bah, tôi nên đăng bình luận của mình làm câu trả lời: P –

+0

Tôi đánh giá cao ý kiến ​​của bạn @AlexMDC. – allprog

+0

Vâng, nhưng bạn có thể tìm thấy một từ tích cực có nghĩa là không có sản phẩm nào. Giống như 'isGotSomethingInIt' nhưng ngữ pháp. Hay chúng ta nghĩ rằng chúng ta có khái niệm tiêu cực này trong quần áo từ vựng tích cực hoàn toàn bởi vì ngôn ngữ tiếng Anh không có từ đơn giản cho nonempty? –

4

Tôi nghĩ rằng nó tuân theo quy ước sử dụng is[Something]() cho booleans thay cho get[Something]().

Ngoài ra, việc sử dụng !notEmpty() có thể hơi khó hiểu!

2

Ý kiến ​​của tôi là, nó là hợp lý hơn vì như ==!=. Một cách hợp lý Nó là tốt hơn để có isEmpty!isEmpty, Nó rất dễ hiểu.

Các vấn đề liên quan