uby是非常灵活的,她允许你做到任何你能想到的神奇的事情。
今
天在读模块和混含(mix-in)时,被深深的打动了一把。在Ruby语言中,我们可以把一些常用的业务逻辑(应用)封装在一个模块当中,在未来的某个类
中,如果我们希望此类的实例去拥有模块中所包含的功能,只需要在将模块混含入类中就可以了,此类的对象实例就理所当然的拥有了“外来”的力量!之前我一直
在写Java代码,因此对于混含我似乎感觉她是一种神奇的力量,完全打破了传统的圈圈框框,而且通过模块,可以进一步的细化封装,使代码得到更大限度的重
用,何其的伟大?!
为了证明这一点,我们可以让混含之后类的实例对象调用respond_to?方法来检测是否拥有了模块中定义的方法,我们可以编写如下类和模块代码:
module Message
def show_message
puts "Hello Anthrax!"
end
end
require "message"
class ShowMessage
include Message
end
show = ShowMessage.new
if show.respond_to?("show_message")
puts "OK!!!"
end
show.show_message
执行程序,显示:
OK!!!
Hello Anthrax!
说明我们之前的操作确实如同我们预想的那样,模块的功能被混入了类,可以被类的对象实例随意使用,而不需要象Java那样依赖先天继承或实现多个接口。这仅仅是Ruby语言强大灵活特色之冰山一角,有兴趣的朋友也可以和我一起加入的Ruby的学习中来。
分享到:
相关推荐
8. **ruby mix-in**:进一步探讨了如何有效地利用模块(mix-in)来设计和组织代码,以及它们在类继承结构中的作用和影响。 9. **flash对象**:在Rails中,Flash是一个用于短暂存储消息的对象,它可以在一次请求之间...
第四部分:介绍一些比较高级的功能,比如Ruby的环境参数、环境变量、迭代器的用法与做法、Mix-in等。 第五部分:介绍比较复杂一点的程序范例,试着使用Ruby来写出比较实用的程序。 附录:使用Ruby时所需的知识...
Behaves gem的核心概念是行为模式(Behavior Pattern),它允许我们将一组相关的方法打包成一个模块,然后将其混入(mix-in)到需要这个行为的类中。这种设计模式有助于减少代码重复,提高代码复用,并使代码结构...
另外,Ruby的模块(Module)提供了命名空间管理和混合(Mix-in)功能,使得代码组织更加灵活。 Ruby的元编程能力是其独特之处,它允许在运行时动态修改代码,创建高度自定义的行为。`eval`函数可以执行字符串作为...
模块还可以用来实现命名空间和混入(Mix-in)功能,通过`include`关键字将模块的方法引入到类中。 7. **异常处理**:Ruby提供了异常处理机制,使用`begin/rescue/else/ensure`块来捕获和处理运行时错误。 8. **...
1. **模块与混合(Mix-in):** 模块可以用来组织代码或者提供特定功能,通过`include`关键字可以让一个类包含模块中的方法。 2. **元编程:** RUBY强大的元编程能力允许在运行时动态修改程序的行为。 3. **异常处理...
另外,Ruby中的模块(Module)和Java的包(Package)相似,但模块还扮演着命名空间和混入(Mix-in)的角色。混入允许模块中的方法被其他类直接继承和使用,这是一种不同于Java继承的独特方式。 在错误处理方面,...
Ruby中可以通过组合或模块混入(mix-in)来实现装饰器。 5. **策略模式**:策略模式定义了一系列算法,并将每个算法封装起来,使它们可以互相替换。在Ruby中,可以使用模块和 Duck Typing(动态类型)来实现策略。 ...
模块用于代码复用和命名空间管理,但也可作为混入(mix-in)来添加方法到类。 2. **方法**:Ruby的方法定义可以嵌套,并且可以动态添加或删除。`method_missing`是Ruby的一个特殊方法,当调用一个未定义的方法时,...
5. **模块(Module)**:模块是组织代码的方式,可以实现命名空间、混入(Mix-in)功能,使得代码可复用性增强。 6. **元编程**:Ruby的强大之处在于其元编程能力,允许在运行时修改和创建代码,极大地提高了灵活性...
此外,Ruby还支持模块(Module),它们可以包含方法和常量,且可以被多个类混合(Mix-in)以扩展功能。 总之,"ruby程序设计"涵盖了从Ruby语言基础到高级特性的全面讲解,包括Ruby的历史、特性,环境配置,类与对象...
4. **模块(Module)**:Ruby的模块用于实现命名空间、混合(Mix-in)功能,以及提供类的方法集。 5. **方法和块的参数**:包括默认参数值、可变数量的参数、块参数等。 6. **异常处理**:Ruby中的`begin-rescue-...
当有多个类需要共享相同的功能,而我们又不想让它们成为同一个类的子类时,就可以使用模块Mix-in。需要注意的是,模块函数在被包含进类后,会变成类的私有实例方法,无法直接在类的外部调用。 在Ruby中,类的方法...
- **模块与混合**:Ruby支持模块,模块可以包含方法和常量,并可以通过混合(mix-in)方式添加到类中。 ##### 3. 方法约定 - **命名规则**:方法名通常遵循一定的命名约定,如以问号(`?`)结尾的方法通常返回布尔...
- `module`定义模块,用于封装代码和实现模块混合(mix-in)。 10. **继承与多态** - 使用`进行类的继承,如`class ChildClass ; ...; end`。 - 多态主要通过方法覆盖(method overriding)和鸭子类型(duck ...
2. **对象和类**:Ruby是面向对象的语言,会讲解类的定义、对象的创建、继承、模块(Module)的作用以及混合(Mix-in)机制。 3. **方法**:学习如何定义和调用方法,包括块(Block)、Proc和Lambda的区别,以及...
- 模块可以包含多个方法定义,并且可以通过混合使用(mix-in)的方式添加到其他类中,实现代码复用。 - 类和模块可以组合使用,来构建复杂的程序结构。 3. **默认对象(self)与作用域** - `self`关键字在Ruby中...