• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >ruby > Ruby中关于模块的一些基础知识

Ruby中关于模块的一些基础知识

作者:goldensun 字体:[增加 减小] 来源:互联网

goldensun 通过本文主要向大家介绍了ruby基础教程,ruby基础教程 第4版,ruby 基础语法下载,ruby基础,ruby基础教程 pdf等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

模块与类很相似,它也可以说成是“不能被实例化的类”。由于Class类是Module类的子类,所以说成是“类=模块+实例化能力”也许更好。

所谓模块,究竟是用来干什么的呢?其作用主要有两大类:Mix-in和命名空间。

Mix-in实际上是受限制的多重继承。利用实际做成的继承关系,可以实现对某些类进行一些“点缀”的目的。事实上,Mix-in这种说法就来自于在冰激凌上面的饼干或者坚果。

在面向对象设计的历史中,由多重继承机制造成的问题早已众所周知了。所以,很多现代的面向对象设计语言都只支持单一继承的方式。Ruby就是采用的这种方式。

但是,多重继承机制也有不能被割舍的魅力。因此Ruby通过采用Mix-in的方式引入了很多多重继承的优点。

一个类如果同时继承了多个类,就会很容易在面向对象设计上出现很多问题。因此,Ruby加入了以下限制:

1、 只能继承一个类

2、 可以继承多个所谓的“像类但不是类”的模块

此外,Ruby把“在类中加入模块”的动作称为include。

模块的另一个功能是提供命名空间

在大规模的程序开发中,命名冲突的问题经常会出现。比如读者在程序中需要制作一个名为Service的类,但是Service这个名字却已经在程序库中被使用了,这就是命名冲突的问题。

在很多现代的编程语言中,为了避免命名冲突的问题,基本上都提供了命名空间或者包的功能。在不同的命名空间中存在的Service类虽然类名相同,但是会被作为不同的对象来处理。

在Ruby中,通常会利用模块来提供这样的命名空间。
 

class Service; end
module Library
  class Service; end
end
</div>

 最开始的Service类属于Top Level的命名空间,后面的Service类则属于Library模块。

这其实就是Top Level和Library模块中分别定义了名为Service的常量(类名实际上是指向class对象的常量)。

因此,在使用时就像使用常量一样。
 

::Service       #Top Level的Service
Library::Service  #Library的Service
</div>

</div>

您可能想查找下面的文章:

  • ruby 正则表达式 教程
  • Ruby中使用正则表达式的基础指引
  • Ruby中关于模块的一些基础知识
  • Ruby基础知识之类
  • Ruby基础知识之方法、代码段
  • Ruby基础知识之基本流程控制
  • Ruby基础知识之数据类型

相关文章

  • Ruby设计模式编程之适配器模式实战攻略
  • windows下安装ruby与rails时遇到的问题总结
  • Ruby中的异常处理代码编写示例
  • ruby实现网页图片抓取
  • rudy 继承 概念
  • rails 连接mysql的问题解决
  • Ruby的基本语法学习总结
  • ruby will_paginate的用法
  • Ruby中使用SWIG编写ruby扩展模块实例
  • 详解Ruby中的单件方法和单件类

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • CentOS 6.3下编译安装Ruby 2.0笔记
    • 淘宝网提供的国内RubyGems镜像简介和使用方法
    • 详解组合模式的结构及其在Ruby设计模式编程中的运用
    • Ruby中变量引用时的一些注意点
    • Windows下ruby语言安装教程
    • 一个简单的Ruby可逆加密解密类
    • 实例解析Ruby程序中调用REXML来解析XML格式数据的用法
    • 浅析Ruby中的DATA对象
    • rudy 方法 分析
    • Windows下安装配置Ruby的debug工具ruby-debug-base19

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有