我需要一个返回car()
对象的函数Car
。具有以下代码的文件有效:
class Car
def something
true
end
end
def car
Car.new
end
将函数放在类之外的同一文件中是对的吗?
答案 0 :(得分:1)
技术上?是的,没关系。
但是听起来我觉得你正在寻找更多的东西工厂方法。这是一个很好的阅读:Factory methods in Ruby。
如果您想创建使用自定义参数创建新对象的函数,这是一个很好的做法。
答案 1 :(得分:0)
您可以使用Car inside Car类
class Car
def initialize(brand, name)
@brand = brand
@name = name
end
def something_cool
puts "My #{@name} from #{@brand} does cool things"
end
def self.ferrari
Car.new("Ferrari", "F-40")
end
end
然后你可以使用:
ferrari = Car.ferrari
ferrari.something_cool
一些参考:Creational patterns