[英]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.