如何解决定义模块中的类
|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都是车辆,但是在很多情况下并非如此。例如,在单个模块中对所有类别的应用程序进行分组被广泛使用。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。