我正在研究活动记录和数据映射器设计模式之间的区别。想到一个简单的问题是,在每个活动记录实例中重复使用持久性方法,是否会导致大量不必要的内存使用?或者它可以忽略不计?
答案 0 :(得分:1)
面向对象的编程语言方法通常存在于类级别,而不是对象级别。意味着一个对象是一个类的实例,并且在调用(或发送,取决于语言)object.foo
时,它实际上引用该类并在该对象的上下文中调用该方法。 (这可以通过许多不同的方式来完成,我没有资格深入探讨。)
想象一下,如果ToString
或其继承者的每个实例都拥有该方法的副本,那么流行语言中toString
/ to_s
/ Object
的开销就会增加!
因此,为了回答您的问题,对于构成您的Active Record类的类上存在的方法,没有不必要的内存使用。