Tôi có một mô-đun tồn tại để được bao gồm trong hai lớp tương tự. Một số phương thức được đưa vào mô-đun để sử dụng giống nhau bởi cả hai lớp trả về một cá thể mới.Cách trả về một cá thể mới của bản thân từ một phương thức thể hiện ruby
Nhưng làm cách nào để mã hóa trong mô-đun mà hàm tạo cho lớp chứa phải được gọi?
Một ví dụ đơn giản:
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
Vì vậy, trong định nghĩa của *
làm thế nào tôi sẽ gọi các nhà xây dựng như vậy trong bối cảnh của lớp Vertex nó trở lại một Vertex mới và trong bối cảnh của lớp Vector nó trả lại một Vector mới mà không cần phải khai báo lại tất cả các phương thức như vậy trong mỗi lớp?
ah người đàn ông .. bạn đánh bại tôi trong vài giây. : @ –