簡體   English   中英

Java Swing:短語“贊成合成而非繼承”是否適用?

[英]Java Swing: Does the phrase “favor composition over inheritance” apply?

“贊成合成而不是繼承”這個短語是否適用於Swing組件? 在開始設計UI之前,我想收集一些關於這個主題的專業意見以及哪些代碼更易於維護。

“贊成合成而不是繼承”這個短語是否適用於Swing組件?

是。

我擴展Swing組件的唯一時間是我需要覆蓋一個或多個方法。 例如,當我想覆蓋paintComponent方法時,我將擴展JPanel。

所有其他時間,我的類將包含我需要的Swing組件。 這允許我分離我的類方法:

frame.getMethod();

從Swing組件類方法:

frame.getFrame().getPreferredSize();

嘗試這個..

1.我通常更喜歡使用Composition over Inheritance, 如果我不使用類的所有方法或那些方法不適用於我的類。

2.作文與HAS-A關系有效。

例如:浴室有浴缸

   Bathroom cannot be a Tub

3. 當用於強制某些特性到其子類時 ,繼承被最佳地使用。

例如:

每個四輪車必須有轉向,剎車,燈,Windows等......

必須能夠加速,應用剎車等....

因此它的子類必須具有使其成為四輪車的功能。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM