我正在做一家餐馆供应的菜肴的模特。我可以做这样的菜:

class Dish
  attr_accessor :name, :price, :ingredients, etc...
  def initialize(dish_name, dish_price, etc...)
    name= dish_name
    price= dish_price
  end
end

关于内存使用,最好为每个Dish创建Dish的实例,或者创建一个新的类来对Dish进行子类划分,Dish.new("Chicken Curry", ...)对于硬件资源,在这两种方法之间进行选择时,是否需要考虑其他事项?
为了澄清这一点,chickencurry类只包含一个构造函数,在这个构造函数中它设置了适当的字段,如下所示:
class ChickenCurry < Dish
  def initialize
    super("Chicken Curry", ...)
  end
end

哪些使用了更多资源,class ChickenCurry < Dish; ...; end;Dish.new?差别可以忽略吗我计划拥有数千个这样的对象,因此即使是10 KB的差异也值得考虑。
我正在使用jruby,所以在回答时请考虑jvm,但也欢迎回答与matz的ruby有关的问题。
这不是关于设计的问题我只对资源使用感兴趣。

最佳答案

别担心记忆力,你要问自己的主要问题是:你的行为是否会扩展你的行为如果您的答案是否定的(就像您所说的只有构造函数),那么只使用一个类。
使你的系统清晰易懂。
记住这一点:
“过早的优化是万恶之源”-唐纳德纳特

10-06 10:20