有关最佳方法的建议,不需要使用'::'来使用模块中的类(如下所示)?
使用import / mixin?这不是一个多继承案例吗?只想简化代码。在这种情况下使用导入会产生副作用吗?
module Shapes
class Circle
class RightTriangle
end
class ShapeUser
def go
shape1 = Shapes::Circle.new
** prefer to use just shape1 = Circle.new
....
end
答案 0 :(得分:5)
include
模块:
class ShapeUser
include Shapes
def go
shape1 = Circle.new
# ...
end
end
这里发生的一切就是让Circle
,RightTriangle
等常量可用于班级ShapeUser
。这是对include
:)
答案 1 :(得分:1)
请注意,仅仅因为Ruby中不可能存在多重继承 - 并且混合输入通常被吹捧为允许您实现类似的东西 - 这并不意味着混合输入和模块的所有使用因此必须是多个继承案件!
这是一个使用include
的好地方。