根据用例将不同的模块包含到同一个类中



如果有两个模块-模块Abc和模块Bcd以及一个类-类Efg

现在,我们希望在一个实例中将模块Abc包含到类Efg中,并且需要在另一个实例中将模块Bcd包含到类Efg中,但不能同时包含两个模块。

在Ruby类中可以这样做吗?

如果我正确理解你的问题,那么我认为你可以使用singleton_class只为类的特定实例包含一个模块:

inst1 = Efg.new
inst2 = Efg.new
inst3 = Efg.new
inst1.singleton_class.include Asd
inst2.singleton_class.include Bcd

现在inst1将具有来自Asd的方法,而inst2将具有来自于Bcd的方法。inst3将不具有任何方法。

相关内容

  • 没有找到相关文章

最新更新