DressUp 动态方法覆盖管理指南
装扮来玩装扮吧!Dress Up允许您指定可以有选择地启用和禁用的命名方法覆盖集。它形成了一种动态的装饰器模式。兼容性方面,Dress Up依赖于Ruby 1.9.X哈希条目的排序。例子:下面展示了定义了两种服装的Duck
类:dog
和robosoltier
。 dog
服装覆盖了name=
方法以附加“Dog”并覆盖speak
方法返回“Woof!”;robosoltier
服装也覆盖了speak
并添加了一个新方法terminations
。
class Duck
include DressUp
attr_accessor :name, :age
costume :dog, :name= => lambda {|name| @name = name + ' Dog'}
end
在以上示例中,Dress Up模块可以有效扩展Duck
类的功能,并允许启用或禁用指定的覆盖集。
下载地址
用户评论