的圖紙我必須使用圖形用戶界面元素,在一個特定的屏幕位置繪製圖片。 如果用戶選擇此圖片,則會在圖像周圍繪製邊框。 現在我們想要包含另一個邊框,用於爲用戶標識具有特定值的圖片。分裂GUI元素
目前,如果它被選中的元素看起來在他的內部狀態,然後決定如何繪製自己。
graphic.drawImage(icon, x, y, null);
if (selected) {
drawBorder();
}
我不喜歡在這個繪圖方法中增加另一個元素的想法。 我想過創建一個新的類,它繼承了元素的行爲並覆蓋了draw方法,但這意味着在每個繼承的類中複製整個選定的代碼。 有沒有很好的可能性,所以解決這個問題,而不創建一個子類?
我認爲你是對的。僅爲兩三種不同的行爲進行子類化是一種開銷,如果這種情況稍後發生變化,則可以將其更改爲更高級的方法。現在我試圖改變if else到開關,並將布爾值選擇爲一個枚舉值,以指示應該使用哪種行爲進行繪製 – Janusz 2009-06-04 19:13:02