我正在做一家餐馆供应的菜肴的模特。我可以做这样的菜:
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有关的问题。
这不是关于设计的问题我只对资源使用感兴趣。
最佳答案
别担心记忆力,你要问自己的主要问题是:你的行为是否会扩展你的行为如果您的答案是否定的(就像您所说的只有构造函数),那么只使用一个类。
使你的系统清晰易懂。
记住这一点:
“过早的优化是万恶之源”-唐纳德纳特