You can write an Around Alias in three simple steps:
class String
alias :orig_length :length
def length
"Length of string '#{self}' is: #{orig_length}"
end
end
"abc".length
#=> "Length of string 'abc' is: 3"
这段代码来自 Ruby Quick tips
我画了一个丑丑的线框图。
我能想到的使用场景
- 该方法是 Public,已经被调用者频繁调用。如果直接启用新方法,需要调用者修改自己的代码。
- 通过环绕别名,既修改了自己的逻辑,又不需要调用者更改自己的代码。
这个想法正确吗?