📜  Ruby 中的数据抽象

📅  最后修改于: 2022-05-13 01:55:36.068000             🧑  作者: Mango

Ruby 中的数据抽象

表示重要细节和隐藏功能细节的想法称为数据抽象。接口和实现被这种编程技术隔离开来。数据抽象也是面向对象的编程特性之一。抽象试图最小化信息,以便开发人员可以一次专注于几个想法。抽象是软件开发的基础。

考虑一个打电话的真实例子。这个人唯一知道的是,输入数字并按下拨号按钮会拨打电话,他们不知道电话的内部系统或电话上的拨号按钮。这就是我们所说的抽象。
另一个抽象的现实例子是作为电视机的用户,我们可以打开或关闭它、更改频道和设置音量,而无需了解其功能如何实现的细节。

模块中的数据抽象:在 Ruby 中,模块被定义为一组方法、类和常量。例如,考虑 Math 模块中的 sqrt() 方法。每当我们需要计算非负数的平方根时,我们只需调用 Math 模块中的 sqrt() 方法并将数字作为参数发送,而无需了解实际计算数字平方根的实际算法。

类中的数据抽象我们可以使用类在 ruby 中执行数据抽象。该类允许我们使用访问说明符(私有、受保护、公共)对信息和方法进行分组。班级将确定哪些信息应该可见,哪些不可见。

使用访问控制进行数据抽象: Ruby 中有三个级别的访问控制(私有、受保护、公共)。这些是 ruby 中最重要的数据抽象实现。例如-

  • 可以从程序中的任何位置访问已在类中声明为公共的成员。
  • 在类中声明为私有的成员只能从类中访问。他们是
    不允许访问类之外的任何代码部分。
# Ruby program to demonstrate Data Abstraction 
  
class Geeks 
  
    # defining publicMethod 
      
    public
  
    def publicMethod 
        puts "In Public!"
        # calling privateMethod inside publicMethod 
        privateMethod
    end
  
    # defining privateMethod 
      
    private 
  
    def privateMethod 
        puts "In Private!"
    end
end
  
  
# creating an object of class Geeks 
obj = Geeks.new
  
# calling the public method of class Geeks 
obj.publicMethod

输出:

In Public!
In Private!

在上面的程序中,我们不能直接访问Geeks类的privateMethod(),但是我们可以调用类中的publicMethod()来访问privateMethod()。

数据抽象的优点:

  • 有助于提高系统的安全性,因为只向用户提供关键细节。
  • 它增加了可重用性并防止代码冗余。
  • 可以在不影响用户的情况下独立更改内部类实现。