有人可以告訴我,如果在SWT(或其他人,如JavaFX),使用靜態圖像,而不處理它們是不好的或可接受的。例如:Java SWT - 將最常用的圖像保持爲靜態是否正確?
public class TemplateImage {
/** ================== STATIC FINAL VALUES ================== */
/** Buttons */
public static final Image IMAGE_BUTTON_EXPAND = new Image(Display.getCurrent(), TemplateImage.class.getResourceAsStream("/icons/plus.png"));
public static final Image IMAGE_BUTTON_REDUCE = new Image(Display.getCurrent(), TemplateImage.class.getResourceAsStream("/icons/minus.png"));
public static final Image IMAGE_BUTTON_CREATE = new Image(Display.getCurrent(), TemplateImage.class.getResourceAsStream("/icons/write.png"));
public static final Image IMAGE_BUTTON_DELETE = new Image(Display.getCurrent(), TemplateImage.class.getResourceAsStream("/icons/delete.png"));
public static final Image IMAGE_BUTTON_MODIFY_REFERENCE = new Image(Display.getCurrent(), TemplateImage.class.getResourceAsStream("/icons/link.png"));
/** Miscellaneous */
/** Status */
public static final Image IMAGE_ERROR_STATUS = new Image(Display.getCurrent(), TemplateImage.class.getResourceAsStream("/icons/error-status.png"));
public static final Image IMAGE_WARNING_STATUS = new Image(Display.getCurrent(), TemplateImage.class.getResourceAsStream("/icons/warning-status.png"));
public static final Image IMAGE_UNRESOLVED_CONFLICT_STATUS = new Image(Display.getCurrent(), TemplateImage.class.getResourceAsStream("/icons/unresolved-conflict-status.png"));
public static final Image IMAGE_NEW_STATUS = new Image(Display.getCurrent(), TemplateImage.class.getResourceAsStream("/icons/new-status.png"));
public static final Image IMAGE_ANGRY_STATUS = new Image(Display.getCurrent(), TemplateImage.class.getResourceAsStream("/icons/status-angry.png"));
public static final Image IMAGE_DISAPPOINTED_STATUS = new Image(Display.getCurrent(), TemplateImage.class.getResourceAsStream("/icons/status-disappointed.png"));
public static final Image IMAGE_HAPPY_STATUS = new Image(Display.getCurrent(), TemplateImage.class.getResourceAsStream("/icons/status-happy.png"));
public static final Image IMAGE_NEUTRAL_STATUS = new Image(Display.getCurrent(), TemplateImage.class.getResourceAsStream("/icons/status-neutral.png"));
...
爲什麼不能接受?這是我的偏好問題。我更關心最後一個關鍵字,並在資源聲明中進行初始化。如果您的資源不可用,恢復將不會是一個選項... – Maaaatt
我讀過很多關於「您應該避免在OOP中使用靜態」的討論,我只是想知道並且找不到有關此主題的主題。關於最後一個關鍵字,這是因爲我認爲這些圖標永遠不會改變,並且圖像被設置在我的build.properties中。它會一直這樣,不是嗎? – FreeWorld
如果他們不是,無論原因如何?或者如您在驗證的答案中所述,在創建顯示設備後沒有完成初始化?你將沒有乾淨的方式來恢復該國際海事組織。那裏的關鍵字最終成爲一個問題,因爲你將無法重新初始化您的圖像。 – Maaaatt