在Ruby中,装饰器模式可以通过使用模块来实现。装饰器模式可以让你在不改变原有对象结构的情况下,动态地添加新的功能。
下面是一个简单的示例:
# 定义一个基础类
class Component
def operation
puts "基础操作"
end
end
# 定义一个装饰器模块
module Decorator
def operation
super
puts "装饰器操作"
end
end
# 创建一个具体的组件
component = Component.new
component.operation
# 使用装饰器对组件进行装饰
component.extend(Decorator)
component.operation
在上面的示例中,首先定义了一个基础类Component
,它有一个operation
方法用来执行基础操作。然后定义了一个装饰器模块Decorator
,它在基础操作的基础上添加了额外的操作。最后,通过extend
方法将装饰器模块应用到具体的组件对象上,从而实现了装饰器模式。