Tôi đồng ý với câu trả lời của Darien, nhưng muốn thêm một quan điểm từ góc độ lập trình viên C #.
Khi tôi thấy mã có nội dung 'setXXX', tôi đã đọc rằng nó nói rằng nó đặt giá trị cho một thứ, tôi không hy vọng điều này sẽ có tác dụng phụ trong việc đó ngoài việc đặt giá trị đó và tôi thực sự mong đợi điều này là bình thường (tức là tôi có thể tiếp tục đặt nó với cùng một giá trị và nó ổn). Nó giống như truy cập vào một lĩnh vực. Nói chung, tôi cũng mong đợi được xem phương thức 'getXXX' cùng với 'setXXX'.
Tôi không biết liệu đây có phải là những gì bạn mong đợi trong Java và C ++ hay không, nhưng đó là những gì tôi mong đợi ở C #, mặc dù trong C # có một bàn tay ngắn cho cái này được gọi là Thuộc tính. Và đây là một số hướng dẫn hay về cách sử dụng Thuộc tính ( http://msdn.microsoft.com/en-us/l Library / ms182181.aspx ).
Với quan điểm này, thì giao diện tôi chọn hoàn toàn phụ thuộc vào nếu có bất kỳ tác dụng phụ nào (ngoài việc thay đổi giá trị trường đó):
Nếu thực hiện hành động có tác dụng phụ, ví dụ: nó hiển thị hộp thoại thì tôi sẽ đi với "Show ()" và "Hide ()".
Nếu nó không có tác dụng phụ, giả sử tôi đang thiết lập mức độ hiển thị của "tiện ích" và một thứ khác biểu hiện tiện ích đó tùy thuộc vào trạng thái của nó thì tôi sẽ sử dụng setVisibility hoặc setIsVisible. (Tôi sẽ không gọi nó là SetVisible).
Trong C # (không chắc chắn về Java), việc áp dụng mẫu quan sát viên là khá phổ biến, trong đó khung UI sẽ lắng nghe các thay đổi đối với các đối tượng và sẽ tự động kết xuất lại UI khi một thuộc tính như Hiển thị thay đổi. Điều đó có nghĩa là việc đặt giá trị bằng cách gọi setIsVisible xuất hiện như thể nó có tác dụng phụ, nhưng theo định nghĩa của tôi thì không. Hợp đồng của widget được thực hiện bằng cách đặt giá trị trường đại diện cho "IsVisible".
Nói cách khác, tôi có thể chuyển đổi mức độ hiển thị của nhãn trên biểu mẫu trước khi biểu mẫu được hiển thị. Tức là nhãn.getIsVisible == true, nhưng hình thức không được hiển thị.
Tôi không thể gọi Hide () khi biểu mẫu không được hiển thị.