Ruby中的封装

在本文中,我们将研究封装。我们知道Ruby是一种纯粹的面向对象的语言,在每种面向对象的语言中,封装都被视为重要的属性之一。因此,让我们借助程序代码和语法来了解封装。

将数据打包为一个单元称为封装。它也可以称为将代码和受代码影响的数据绑定在一起的过程。通过应用封装,可以保护您的数据免受其他来源的操纵。用简单的话来说,它可以被认为是一种机制,它仅允许数据由声明它们的类的成员函数操纵。

如何实现封装?

您可以通过将class的所有变量声明为private( they are by default private)和将所有成员函数声明为来实现封装public(they are by default public)。现在,这些变量只能由该类的这些公共方法访问。

封装的优势

  • 易于测试的代码:单元测试是每个程序员都知道的测试。完成封装后,单元测试变得容易完成。

  • 减少冗余:封装有助于使代码可重用。您可以根据时间要求更新代码。

  • 数据隐藏:封装有助于数据隐藏,这意味着用户将无法获得有关类的内部实现的想法。用户将不知道数据在类中的存储位置。

让我们借助示例来了解封装:

=begin
Ruby program to demonstrate encapsulation
=end
class Bank
	def initialize(id, nme, no, type)
		@cust_id = id
		@cust_name = nme
		@ac_no = no
		@cust_type = type
	end

	def display_details
		puts "Customer id : #{@cust_id}"
		puts "Customer name : #{@cust_name}"
		puts "Customer no : #{@ac_no}"
		puts "Customer type : #{@cust_type}"
	end
end

customer1 = Bank.new("Cust101", "Rashmeet", "AC789", "Savings")
customer2 = Bank.new("Cust102", "Parmeet", "AC1789", "Savings")
customer3 = Bank.new("Cust103", "Jagmeet", "AC2789", "Savings")
customer1.display_details
customer2.display_details
customer3.display_details

输出结果

Customer id : Cust101
Customer name : Rashmeet
Customer no : AC789
Customer type : Savings
Customer id : Cust102
Customer name : Parmeet
Customer no : AC1789
Customer type : Savings
Customer id : Cust103
Customer name : Jagmeet
Customer no : AC2789
Customer type : Savings

说明:

在上面的代码中,您可以观察到成员函数和数据只能通过类的对象或实例进行访问。在这里,“Bank”类的实例是customer1customer2customer3