2012-03-12 60 views

回答

1

對於乾淨的OOP,你應該實現Border接口。但是,如果您不打算使用從Border繼承的新類繼續擴展新的Border類,則擴展AbstractBorder將更爲方便。

AbstractBorder是Swing的一部分,使您的工作更輕鬆。因此,請使用它,但不要將其作爲類層次結構的基礎。

0

有時候,當Java有一個接口XYZ和一個類AbstractXYZ時,這個類會做很多工作,並且只留下最低限度的實現(例如List和AbstractList)。有時抽象類只提供了一個無所作爲的實現(例如MouseInputListener和MouseInputAdapter)。 AbstractBorder更多的是後一種情況;它並沒有真正幫助Border的實現,但它確實提供了一些輔助方法(AFAICS)對組件'託管'邊界比邊界本身更有用。 所以,我想說可能有點任意使用哪一個。無論如何,我推薦使用AbstractBorder,沒有理由不去(除非你需要從另一個課程中派生出來)。

@PeterMmm,爲什麼你不應該把它作爲層次結構的一部分?標準Swing邊框的很多(全部?)派生自AbstractBorder。

相關問題