0
我需要返回Car
对象的函数car()
。具有以下代码的文件有效:返回对象的函数
class Car
def something
true
end
end
def car
Car.new
end
将函数放在类之外的同一文件中是否正确?
我需要返回Car
对象的函数car()
。具有以下代码的文件有效:返回对象的函数
class Car
def something
true
end
end
def car
Car.new
end
将函数放在类之外的同一文件中是否正确?
技术上?是的,那很好。
但是这听起来像你正在寻找更多的ala 工厂方法。这是一个很好的阅读:Factory methods in Ruby。
如果您想要创建具有自定义参数的新对象的函数,这是一种很好的做法。
你可以用厂车类中
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