`
wangsuting
  • 浏览: 29767 次
社区版块
存档分类
最新评论

ruby中类的层级关系

 
阅读更多

所有的类最终继承于ObjectObject本身又继承于 BasicObject。BasicObject是ruby对象体系中的根节点。

 

 

'hello'.class
=> String
String.class
=> Class

String.superclass
=> Object
Object.superclass
=> BasicObject
BasicObject.superclass
=> nil

 

 

Class.superclass
=> Module
Module.superclass
=> Object

 因此,一个类只不过是一个增强的Module,增加了几个方法(new(),allocate(),superclass()等等),其中allocate()方法是new()方法的支撑方法。这几个方法可以创建对象并且可以把它们纳入到类体系结构中。

 

一个模块基本上就是一组实例方法,而类是增加了若干新功能(一个superclass()方法和一个new()方法)的模块。

 

模块和类的使用场景:

模块:希望它应该在别处被包含(include)时,或者当成命名空间时。

类:当希望被实例化或者继承时。

 

 

 

分享到:
评论

相关推荐

    Ruby-ActsAsTree扩展ActiveRecord添加亲子关系支持

    通过这个扩展,你可以将任何ActiveRecord模型转化为具有层级关系的数据模型。模型中的每个实例都可以成为树中的节点,它们之间可以建立父节点与子节点的关系。 `ActsAsTree`的核心功能包括: 1. **父子关系**:...

    Ruby-Ancestry将ActiveRecord模型组织成一个树状结构

    这个库特别适用于那些需要处理有层级关系数据的场景,比如分类、菜单系统、组织架构等。Ancestry通过提供一系列便捷的方法,使得在数据库中存储和查询这些层次数据变得简单高效。 在Ruby on Rails应用中,...

    Ruby-Jbuilder通过一个构建式DSL创建JSON结构

    Jbuilder也支持嵌套结构,这对于表示层级关系的数据非常有用。比如,如果User模型有多个Address关联,你可以这样做: ```ruby json.addresses do @user.addresses.each do |address| json.object! do json....

    Ruby-Haml是一个HTML的模板引擎

    1. **缩进表示嵌套**:Haml中的元素通过空格或制表符来表示层级关系,与Python或Git的代码风格类似。每增加一个元素的嵌套,就向前缩进一个或多个空格。 2. **行内元素和块级元素**:Haml中,以`%`符号开头的行表示...

    Ruby-MongoidTreeMongoid文档树结构使用物化路径模式

    Mongoid Tree是基于物化路径模式实现的,这是一种在非关系型数据库中构建层级数据的方法。在此模式下,每个文档都包含其在树中的完整路径,而不是仅仅存储父节点的引用。 ### 物化路径模式 物化路径模式是一种存储...

    addison.wesley.refactoring.ruby

    - 分层结构中的每个层级处理不同属性(Each level of hierarchy deals with a different attribute),可能意味着过深的继承层次。考虑使用面向对象的设计模式,如策略模式或访问者模式。 - 类因为不同的原因而...

    Ruby-ClosureTree轻松高效地使你的ActiveRecord模型支持层次结构

    Closure Tree是一款专门为Ruby on Rails设计的gem,用于处理和管理具有层级关系的数据。它为ActiveRecord模型提供了高效且灵活的方法,使你可以轻松地创建、查询和维护树状结构。Closure Tree的核心概念是通过自连接...

    Ruby编程中的语法使用风格推荐

    在Ruby中,引用常量、类或模块时,应使用冒号(`::`)来明确层级关系。然而,在调用方法时则不应使用此符号。例如: ```ruby # 不推荐 SomeClass::some_method some_object::some_method # 推荐 SomeClass.some_...

    GEDCOM/Ruby-开源

    在Ruby编程语言中,`GEDCOM/Ruby` 是一个开源库,专门设计用于解析和处理GEDCOM文件。这个库的核心功能是提供了一个回调解析器,能够将GEDCOM格式的数据转换为Ruby对象,方便开发者进行操作和分析。 首先,让我们...

    rails查询学习笔记

    在"Winkee_TreeView"这个文件名中,"TreeView"通常是指一种数据展示方式,可能在这里指代的是Rails中如何处理和展示层次结构数据,比如分类、目录或者层级关系的数据。这可能涉及到ActiveRecord的has_many :through...

    RUBBoS:3 层级修改 RUBBoS Java Servlets

    在"3 层级修改 RUBBoS Java Servlets"的主题中,我们将深入探讨如何将RUBBoS的原始设计扩展到三层架构,以提高可维护性、可扩展性和灵活性。 在传统的Web应用开发中,三层架构是一种常见的设计模式,它将应用程序...

    acts_as_nested_set的增强版BetterNestedSet

    在Ruby on Rails开发中,数据结构的选择对于数据库操作的效率至关重要。其中,Nested Set模型是一种常用的数据组织方式,尤其适用于管理具有层级关系的数据,如目录、菜单等。acts_as_nested_set是Rails社区中广泛...

    自动生成树

    树状结构常用于表示层级关系,如文件系统、网页链接、数据库索引等。 1.2 树的应用场景: - 导航菜单:网站的层级菜单可以通过树状结构来表示,用户可以通过展开和折叠节点来浏览不同层次的内容。 - 组织结构:...

    Notebook:使用Ruby on Rails,HAML和CSS的笔记本应用

    HAML的语法特点包括缩进表示层级关系,%tag用于创建元素,而=和-%则分别用于输出内容和注释。 CSS(Cascading Style Sheets)则是用于描述网页及应用程序用户界面外观和表现的语言。在这个项目中,CSS将用于定义...

    Rails中应用Ext.tree:以中国的省市地区三级联动选择为例

    Tree组件允许我们以树状结构展示数据,非常适合处理有层级关系的数据,如省市区。作者会介绍如何配置TreeStore来连接Rails API获取数据,以及定义TreeNode配置来呈现每个省市区节点。这可能包括设置`rootUrl`为Rails...

    树形菜单dtree

    这种结构模仿了自然界中的树,其中根节点位于顶部,子节点则按照层次关系向下扩展。在本篇文章中,我们将深入探讨树形菜单dtree的原理、应用以及实现方法。 1. 原理: 树形菜单的核心是数据结构中的树。每个节点都...

    zhihu_clone:这是 zhihu.com 通过 Ruby On Rails 的克隆

    - **ActiveRecord**:Rails 的 ORM(对象关系映射)层,它允许开发者用 Ruby 代码操作数据库,简化了数据库操作。 2. **zhihu_clone 功能实现**: - **用户模块**:包括用户注册、登录、个人资料管理等,这通常...

    Genre-Map:电子音乐流派的流派地图

    此外,为了生成直观的地图,开发者可能利用了如Gnuplot或Ruby的图表库如Gruff,来绘制出流派间的层级关系或网络图。 在实际操作中,Genre-Map的实现可能涉及以下几个步骤: 1. 数据收集:收集各种电子音乐流派的...

    当前比较流行的几种数据交换格式.docx

    YAML的语法相对XML和JSON更为简洁,使用缩进表示层级关系,通过连字符和冒号表示列表和键值对。例如,上面的例子展示了如何用YAML描述一个人的家庭信息,其可读性极强。YAML适用于配置文件、脚本语言中的数据表示,...

Global site tag (gtag.js) - Google Analytics