问题描述
|
module Vehicle
class Car < Wheeled
end
end
module Vehicle
class Bike < Wheeled
end
end
我无法理解这种创建类的模式试图实现的目标。通过在其他类中加入ѭ1作为模块,这样做的不利之处是什么?
解决方法
这样可以使那些类在
Vehicle
模块下保持命名空间:
Car.new
# => NameError: uninitialized constant Object::Car
Vehicle::Car.new
# => #<Vehicle::Car:0x0000123456>
这样,您也可以在模块外部有一个单独的Car
类,and5ѭ类不会产生干扰。
,该模式将以某种方式将相关的类分组到单独的命名空间中,以实现更多的逻辑应用程序结构并避免命名冲突。超类-子类非常不同,尽管在您的特定示例中,这样做会更好,因为Car和Bike都是车辆,但是在很多情况下并非如此。例如,在单个模块中对所有类别的应用程序进行分组被广泛使用。