繁体   English   中英

使用Static类或Abstract类进行对象创建

[英]Use Static class or Abstract class for object creation

所以我有一个普遍的问题。 让我们说我想在这个程序中创建汽车对象我正在编写,我必须创建数百个这个汽车对象。 创建汽车抽象类并在制作我的汽车对象(即丰田汽车,日产汽车等)时扩展它是否更好?或者我可以使用一堆静态类来保存特定对象的细节并在一般情况下使用它汽车对象要制造丰田还是日产? 我认为使用抽象方法应该是非常自我解释的,但这是第二种方法的示例:

public class CarNames {

public static String getCarName(int pCarIndex){

    switch (pCarIndex) {
    case 0:         
        return "Toyota";
    default:
        throw new Error("pCarIndex does not exist!");
    }
}

}

在此类中使用哪个来创建对象:

public class Car{

    private int mCar_ID;//This indicates which Car to load
    private String mCarName;

public Car(int pCar_ID){
    mCar_ID = pCar_ID;
            mCarName = CarNames.getCarName(pCar_ID);
            //Do Stuff with collected parameters 
}

}

如果事情没有意义,请告诉我。 谢谢。

编辑:汽车可能有不同的参数,如大小,引擎等。我选择抽象类的原因是因为我认为它提供了比界面更多的灵活性,因为我可以添加方法。

创建汽车抽象类并在制作我的汽车对象(即丰田汽车,日产汽车等)时扩展它是否更好?或者我可以使用一堆静态类来保存特定对象的细节并在一般情况下使用它汽车对象要制造丰田还是日产?

都不是。 您只有一个Car类和一个包含特定车辆详细信息的文件(例如,数据库)。 然后,您可以根据文件内容创建该Car类的实例。

汽车可能有不同的参数,如尺寸,发动机等。

过去半个世纪的程序员将此称为“数据”。 您在源代码中烘焙的数据越少越好。

我准备好了...我不确定你的目标最终是否易于维护或记忆或......我猜这是因为这是一个Android问题,你关心的是记忆。 特别是当你谈论100个物体时。

我首先想到的是轻量级模式 ,它将允许这些对象共享内存并具有更小的足迹。 但我正在使用@CommonsWare答案......你所谈论的部分内容是数据。 如果我理解你的问题,你的计划是根据看起来效率不高的cardId在代码中定义汽车的所有不同部分。 这听起来像数据,无论是xml还是sqllite数据库。

你可能会谈论日产汽车,它可能最终成为扩展抽象级汽车的类型(类),但发动机的尺寸,高度,宽度和汽油里程都是数据。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM