根据用例将不同的模块包含到相同的 class

Include different module into same class based on use case

如果有 2 个模块 - 模块 Abc 和模块 Bcd 以及一个 class - class Efg.

现在我们想在一次实例中将模块 Abc 包含到 class Efg 中,并且需要在另一个实例中将模块 Bcd 包含到 class Efg 中但不能同时使用两个模块。

是否可以在 Ruby class 中完成?

如果我正确理解了您的问题,那么我认为您可以使用 singleton_class 来包含仅用于 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 将有 none 个方法。