在Ruby中,封裝性是通過將代碼組織到模塊(module)和類(class)中來實現(xiàn)的。這樣可以隱藏內(nèi)部實現(xiàn)細節(jié),只暴露必要的接口給外部使用。以下是一些實現(xiàn)封裝性的方法:
__
)開頭的方法被視為私有方法。這些方法只能在類的內(nèi)部訪問,而不能在類的外部訪問。例如:class MyClass
def initialize
@my_private_variable = 10
end
def my_public_method
# 可以訪問私有變量
@my_private_variable
end
private
def my_private_method
# 不能在類外部訪問
puts "This is a private method"
end
end
module MyModule
def self.included(base)
base.class_eval do
# 添加一個類方法
def my_class_method
puts "This is a class method from MyModule"
end
# 添加一個實例方法
def my_instance_method
puts "This is an instance method from MyModule"
end
end
end
end
class MyClass
include MyModule
end
my_instance = MyClass.new
my_instance.my_instance_method # 輸出 "This is an instance method from MyModule"
MyClass.my_class_method # 輸出 "This is a class method from MyModule"
attr_reader
、attr_writer
和attr_accessor
方法,可以控制對類實例變量(instance variable)的訪問和修改。例如:class MyClass
attr_reader :my_instance_variable
def initialize(value)
@my_instance_variable = value
end
attr_writer :my_instance_variable
end
my_instance = MyClass.new(10)
puts my_instance.my_instance_variable # 輸出 10
my_instance.my_instance_variable = 20
puts my_instance.my_instance_variable # 輸出 20
通過這些方法,Ruby可以實現(xiàn)良好的封裝性,隱藏內(nèi)部實現(xiàn)細節(jié),提高代碼的可維護性和可擴展性。