2010-10-20 28 views

回答

3

我建議你自己做,而不是使用java.awt.Dimension,特別是如果你想要的是一個接口而不是一個類。如果你確實想要一個類似Dimension,我仍然不會使用它,而是讓另一個類作爲一個不可變的值類型... Dimension的可變性是一個主要的弱點。每個返回Dimension的方法都會被迫返回它的一個副本,並且每個接受Dimension的方法都被迫複製它。如果它是不變的,那麼在任何情況下都不需要複製。

1

Dimension類? http://download.oracle.com/javase/6/docs/api/java/awt/Dimension.html

這不是最終的,您可以擴展並覆蓋它以供您自己使用。

+0

@Bozho修復它;)您也可以從其他人提到的頁面找到抽象類Dimension2D的鏈接。 – Valchris 2010-10-20 20:26:50

+0

我不認爲這真的回答了具體的問題,或者是一個好主意。首先,這不是一個接口。另一方面,'Dimension'的可變性是一個很大的問題,它迫使在所有使用它的Java代碼上進行大量的複製,如果它是一個不可變的值類型,它應該是不需要的。 – ColinD 2010-10-20 20:27:55

+0

@ColinD有效分數。我想,我很快就會贊成 – Bozho 2010-10-20 20:31:59

1

如果您確定使用某個類並導入了AWT類,則可以使用java.awt.Dimension或java.awt.geom.Dimension2D作爲抽象基類。沒有我知道的具體界面。

1

一個有點正確的答案,我會說我對此有所保留。如果您正在使用awt/Swing進行桌面項目 - 您可以使用java.awt.Dimension,但它不是界面。如果你希望它確實是一個界面 - 創建你自己的界面。

定義屬於自己的Size接口的另一個原因,如問題所示,是因爲在Dimension中,您正在創建對AWT程序包的依賴關係。我希望將來JDK中的內部依賴關係將被最小化,並且您將能夠運行服務器端代碼,而不需要包含awt依賴關係。

所以最終我的答案是 - 創建您自己的界面。

相關問題