之前有人问过类似的问题,但我特别问的是使用组合作为使用模块 mixins 的替代方法。
class Helper
def do_somthing
end
end
如果我需要“使用”一个类但不继承它,我只需编写它并使用它。
class MyStuff
def initialize
helper = Helper.new
helper.do_something
end
end
我为什么要为此创建一个模块:
module Helper
def do_something
end
end
class MyStuff
include Helper
end
我看到的唯一区别是,如果我使用模块,周围不会有很多Helper
物体。但是我没有看到周围有更多物体而不是更大物体的任何东西。
此外,我不知道将来是否需要对它进行子类化。那么我如何决定我的库的用户是想要使用模块 mixin,还是想要使用组合呢?