在Ruby中,裝飾器模式可以通過使用模塊來實(shí)現(xiàn)。裝飾器模式可以讓你在不改變原有對象結(jié)構(gòu)的情況下,動態(tài)地添加新的功能。
下面是一個簡單的示例:
# 定義一個基礎(chǔ)類
class Component
def operation
puts "基礎(chǔ)操作"
end
end
# 定義一個裝飾器模塊
module Decorator
def operation
super
puts "裝飾器操作"
end
end
# 創(chuàng)建一個具體的組件
component = Component.new
component.operation
# 使用裝飾器對組件進(jìn)行裝飾
component.extend(Decorator)
component.operation
在上面的示例中,首先定義了一個基礎(chǔ)類Component
,它有一個operation
方法用來執(zhí)行基礎(chǔ)操作。然后定義了一個裝飾器模塊Decorator
,它在基礎(chǔ)操作的基礎(chǔ)上添加了額外的操作。最后,通過extend
方法將裝飾器模塊應(yīng)用到具體的組件對象上,從而實(shí)現(xiàn)了裝飾器模式。