class Employee
attr_accessor :id, :salary, :birthday... # about 10 more attribures
def qualify_for_raise? ..... end
def qualify_for_promotion? ..... end
# 10 more instance method
end
class Review
def review(employee_array)
employee_array.map do |employee|
if employee.qualify_for_raise?
# ...
end
if employee.qualify_for_promotion?
# ...
end
# ...
end
end
end
私は50,000のEmployeeオブジェクトを作成するので、各Employeeオブジェクトにはインスタンスメソッドのコピーがあるため、すべてのインスタンスメソッドをEmployeeクラスから取り除く方が良いでしょうか?それが本当であれば、私は以下のようなクラスを設計しました。私は、Employeeクラス自体の内部でEmployeeデータを操作するメソッドを宣言する方が好きです。インスタンスメソッドの有無にかかわらずEmployeeオブジェクトのサイズを調べる方法はありますか?Rubyオブジェクトでメモリ使用量を減らす
class Employee
att_accessor :id, :salary, :birthday... # about 10 more attribures
end
class Review
def review(employee_array)
employee_array.map do |employee|
if is_qualify_for_raise(employee)
# ...
end
if is_qualify_for_promotion(employee)
# ...
end
# ...
end
end
def is_qualify_for_raise(employee) ..... end
def is_qualify_for_promotion(employee) ..... end
# 10 more methods
end
'att_accessor'の' att_accessor'のスペルが間違っています。 –
Andrewの答えに加えて、なぜ同時に50000ものインスタンスをすべてインスタンス化する必要がありますか? –