Рубрики

Абстракция данных в Ruby

Идея представления значимых деталей и сокрытия деталей функциональности называется абстракцией данных. Интерфейс и реализация изолированы этим методом программирования. Абстракция данных также является одной из функций объектно-ориентированного программирования. Абстракция пытается минимизировать информацию, чтобы разработчик мог сосредоточиться на нескольких идеях одновременно. Абстракция является основой для разработки программного обеспечения.

Рассмотрим реальный пример телефонного звонка. Единственное, что знает человек, это то, что при наборе номеров и нажатии кнопки набора номера будет сделан телефонный звонок, они не знают о внутренней системе телефона или о кнопке набора номера на телефоне. Это то, что мы называем абстракцией.
Еще один реальный пример абстракции — пользователи телевизоров, мы можем включить или выключить их, изменить канал и настроить громкость, не зная подробностей о том, как реализована его функциональность.

Абстракция данных в модулях . В Ruby модули определяются как совокупность методов, классов и констант. Например, рассмотрим метод sqrt (), присутствующий в модуле Math. Всякий раз, когда нам нужно вычислить квадратный корень неотрицательного числа, мы просто вызываем метод sqrt (), присутствующий в модуле Math, и отправляем число в качестве параметра, не понимая фактический алгоритм, который фактически вычисляет квадратный корень из чисел.

Абстракция данных в классах: мы можем использовать классы для выполнения абстракции данных в ruby. Класс позволяет нам группировать информацию и методы, используя спецификаторы доступа (приватный, защищенный, публичный). Класс определит, какая информация должна быть видимой, а какая нет.

Абстракция данных с использованием контроля доступа. В Ruby существует три уровня контроля доступа (частный, защищенный, общедоступный). Это самая важная реализация абстракции данных в ruby. Например-

  • Члены, которые были объявлены общедоступными в классе, доступны из любой точки программы.
  • Члены, объявленные как частные в классе, могут быть доступны только из класса. Они есть
    не разрешается доступ к какой-либо части кода за пределами класса.

# Ruby-программа для демонстрации абстракции данных

  

class Geeks 

  

    # определение publicMethod

      

    public

  

    def publicMethod 

        puts "In Public!"

        # вызов privateMethod внутри publicMethod

        privateMethod

    end

  

    # определение privateMethod

      

    private 

  

    def privateMethod 

        puts "In Private!"

    end

end

  

  
# создание объекта класса Geeks

obj = Geeks.new

  
# вызов публичного метода класса Geeks
obj.publicMethod

Выход:

In Public!
In Private!

В приведенной выше программе нам не разрешен прямой доступ к privateMethod () класса Geeks, однако мы можем вызвать publicMethod () в классе для доступа к privateMethod ().

Преимущества абстракции данных:

  • Помогает повысить безопасность системы, потому что пользователю доступны только важные детали.
  • Это увеличивает возможность повторного использования и предотвращает избыточность кода.
  • Может изменить реализацию внутреннего класса независимо, не влияя на пользователя.

Рекомендуемые посты:

Абстракция данных в Ruby

0.00 (0%) 0 votes