2015-11-03 54 views
0

我正在使用不遵循嚴格的MVC設計的UI框架。我創建了一個組件並添加了專用的屬性來「風格化」這個類的這個實例。一些僞代碼:我應該使用額外的類還是樣式?

Button bu = new Button(); 
bu.setCaption("Something"); 
bu.addClickListener(...); 
bu.setAnotherProperty(1); 

但是,我什麼時候決定做一個額外的類而不是整個setter塊?

贊(僞代碼):

public class MyButton extends Button { 

this.setCaption("Something"); 
this.addClickListener(...); 
this.setAnotherProperty(1); 

} 

它是一個很好的做法,像這樣做總是?一般來說這是不好的做法嗎?還是有一個特殊的情況下,應該決定創建一個類而不是一個巨大的setter塊?

回答

3

你的MyButton不是真的(至少根據顯示的代碼)一種特殊類型的按鈕。這只是一個Button,某些參數以某種方式設置。基於此,我可能不會創建一個單獨的類,而是根據不同規格構建按鈕的工廠方法。

這有一個額外的好處,如果你突然意識到你需要兩種「特殊」按鈕,你會添加另一種工廠方法,而不是創建另一個類,基本上只是一個額外的化妝Button

所以,而不是Button b = new MyButton();我會有(執行風格免費)Button b = ButtonFactory.myButton();的東西沿線。

+0

我非常喜歡這種方法:)謝謝! – OddDev

0

您是否多次使用自定義按鈕?如果是這樣,那麼創建一個單獨的課程將是一個好習慣。如果不是,那麼一般情況下這是沒有必要的。

即使這個自定義按鈕只用了一次,我仍然會推薦一個單獨的類來「安全保存」。

相關問題