装扮来玩装扮吧! DressUp 允许您指定可选择启用和禁用的命名方法覆盖集,形成一种动态的装饰器模式。
兼容性
DressUp 依赖于 Ruby 1.9.X 的哈希条目排序。
示例
以下为 Duck 类的定义,包含两种装扮:狗和机器人士兵。
-
狗装扮:覆盖
name=
方法,将名称后加上 “Dog”;覆盖speak
方法返回 “Woof!”。 -
机器人士兵装扮:同样覆盖
speak
,并添加了新方法terminations
。
class Duck
include DressUp
attr_accessor :name, :age
# 定义狗装扮
costume :dog, :name= => lambda {|name| @name = name + \" Dog\"}
# 其他装扮定义代码略
end
暂无评论