Một kiểu là nhóm các phương thức lại với nhau để bạn chỉ sử dụng private
và tối đa protected
một lần cho mỗi lớp. Một kiểu khác là chỉ định khả năng hiển thị ngay sau định nghĩa phương thức:
class Example
def my_private_method
end
private :my_private_method
def my_public_method
end
end
Kể từ Ruby 2.1.0 def
trả về tên phương thức dưới dạng một biểu tượng, vì vậy có thể có một kiểu sắp xếp hợp lý hơn:
class Example
private def my_private_method
end
def my_public_method
end
protected def my_protected_method
end
private_class_method def self.my_private_class_method
end
end
(Lưu ý rằng chúng tôi sử dụng private_class_method
cho các phương thức lớp - nếu không, chúng tôi sẽ nhận được NameError: undefined method
vì private
mong đợi một phương thức cá thể. Ngay cả khi sử dụng nó như một macro như trong ví dụ ban đầu, nó chỉ ảnh hưởng đến khả năng hiển thị của các phương thức cá thể.)
Tôi thích nhất kiểu hiển thị nội tuyến này, vì nó cho phép bạn tổ chức các phương thức theo ý muốn. Nó làm giảm nguy cơ thêm một phương pháp mới vào sai chỗ và vô tình làm cho nó trở nên riêng tư.
Đối với cú pháp phương thức lớp, bạn có thể xử lý nó theo cách này thay thế:
class Example
private def my_private_method
end
class << self
private def my_private_class_method
end
end
end
private def my_method...end