2015-10-03 174 views
0

我需要返回Car对象的函数car()。具有以下代码的文件有效:返回对象的函数

class Car 
    def something 
    true 
    end 
end 

def car 
    Car.new 
end 

将函数放在类之外的同一文件中是否正确?

回答

1

技术上?是的,那很好。

但是这听起来像你正在寻找更多的ala 工厂方法。这是一个很好的阅读:Factory methods in Ruby

如果您想要创建具有自定义参数的新对象的函数,这是一种很好的做法。

0

你可以用厂车类中

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