我有一个模块,它存在于两个相似的类中.模块中包含的一些方法可供两个类使用相同的方法返回一个新实例.
一个简化的例子:
module Point3D def initialize(x,y,z) @x = x @y = y @z = z end def * (scalar) <myclass>.new(@x * scalar,@y * scalar,@z * scalar) end end class Vertex include Point3D end class Vector include Point3D end
所以在*的定义中我将如何调用构造函数,使得在Vertex类的上下文中它返回一个新的顶点,并且在Vector类的上下文中它返回一个新的Vector而不重新声明每个类中的所有这些方法?