获取模块中类的可见性的最佳方法

时间:2010-11-07 02:18:46

标签: ruby

有关最佳方法的建议,不需要使用'::'来使用模块中的类(如下所示)?

使用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

2 个答案:

答案 0 :(得分:5)

include模块:

class ShapeUser
  include Shapes

  def go
    shape1 = Circle.new
    # ...
  end
end

这里发生的一切就是让CircleRightTriangle等常量可用于班级ShapeUser。这是对include:)

的完全合理使用

答案 1 :(得分:1)

请注意,仅仅因为Ruby中不可能存在多重继承 - 并且混合输入通常被吹捧为允许您实现类似的东西 - 这并不意味着混合输入和模块的所有使用因此必须是多个继承案件!

这是一个使用include的好地方。