“Ruby中不必要的接口和抽象类” – 有人可以解释吗?

前端之家收集整理的这篇文章主要介绍了“Ruby中不必要的接口和抽象类” – 有人可以解释吗?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图围绕Ruby包围我的头,我正在努力的一件事是缺少接口/抽象类支持.从谷歌搜索,我不断看到抽象类相关的Ruby问题的答案是“你在Java中思考,Ruby不工作”

那么,Ruby中如何在没有接口/抽象类的情况下工作?

例如,在Java中,我可以创建一个抽象类“book”,子类“小说”,“教科书”和“日志”.有很多共同的功能,我扔在“书”,但我不希望它可以直接访问 – 一本书必须是小说,教科书或杂志.

在红宝石中,我该如何写出这种功能

解决方法

我也是红宝石启动器.根据我的理解,红宝石中的抽象类有更密切的对手.那就是模块.您不能创建任何模块实例,但您可以包含另一个类.所以一个目标类将获得父类的全部功能
module Log
    def write
      //blah
    end
  end

  class EventLog
    include Log

    def Prepare
    end
  end

在静态类型的语言(如java / C#)中,Interfaces执行这些类以使编译时具有所有的方法.由于Ruby是动态的,所以没有意义.

为了更清楚,请检查这些帖子为什么动态语言不需要接口..

> why-dont-we-require-interfaces-in-dynamic-languages
> why-do-dynamic-languages-like-ruby-and-python-not-have-the-concept-of-interfaces

原文链接:https://www.f2er.com/ruby/273921.html

猜你在找的Ruby相关文章