2016-03-08 52 views
1

我的问题与this很相似,但略有不同。OOP - 最佳做法/性能

比方说,我有一个数组一个复杂的系统,千元以下对象:

abstract class Vehicle { 
    // Some vars 

    public abstract void draw(); 
} 

class Car : Vehicle { 
    // Some vars 

    public override void draw() { /* Draw function */ } 
} 

class Truck : Vehicle { 
    // Some vars 

    public override void draw() { /* Another draw function */ } 
} 

它是更有效的创建外部(静态)类VehicleManager其中包含了抽奖功能,用于每个子类?换句话说:每个对象都存储在RAM中的所有函数中,还是编译器优化了对象,所以它没有什么不同?

+0

定义“更有效率”。当您尝试两种方法并分析结果时,性能差异有哪些? – David

回答

0

编译器是非常有效的,不用担心这一点。类的定义(包括方法体)仅被复制到可执行文件,当然也只有一次被复制到RAM中。

例如在Java中,它被称为ClassPool,你可以阅读更多关于它here

+0

好的,谢谢! – random314