Java: существует ли интерфейс Size? - PullRequest
1 голос
/ 21 октября 2010

Существует ли какой-либо интерфейс, подобный приведенному ниже, в Java?

interface Size {
    int getWidth();
    int getHeight();
}

Редактировать: это должен быть интерфейс.

Ответы [ 4 ]

3 голосов
/ 21 октября 2010

Я бы порекомендовал сделать свой собственный, а не использовать java.awt.Dimension, особенно если вам нужен интерфейс, а не класс. Если вам нужен класс , такой как Dimension, я все равно не буду его использовать, но вместо этого сделаю другой класс в качестве неизменяемого типа значения ... Изменчивость Dimension является серьезным недостатком. Каждый метод, который возвращает Dimension, вынужден возвращать его копию, и каждый метод, который принимает Dimension, также вынужден делать его копию. Если бы оно было неизменным, копирование не потребовалось бы ни в одном случае.

1 голос
/ 21 октября 2010

Отчасти правильный ответ, я бы сказал свои оговорки по этому поводу.Если вы делаете настольный проект с помощью awt / Swing - вы можете java.awt.Dimension, хотя это не интерфейс.Однако если вы действительно хотите, чтобы это был интерфейс - создайте свой собственный.

Еще одна причина для определения собственного интерфейса Size, как показано в вопросе, заключается в том, что с Dimension вы создаете зависимость отПакет AWT.Я надеюсь, что в будущем внутренние зависимости в JDK будут сведены к минимуму, и вы сможете запускать свой код на стороне сервера без необходимости вообще включать зависимости awt.

Так что в конечном итоге мой ответ - создать свойсобственный интерфейс.

1 голос
/ 21 октября 2010

Если вы в порядке, используя класс и импортируя класс AWT, вы можете использовать java.awt.Dimension или java.awt.geom.Dimension2D в качестве абстрактного базового класса.Хотя нет определенного интерфейса, о котором я знаю.

1 голос
/ 21 октября 2010

Размерный класс?http://download.oracle.com/javase/6/docs/api/java/awt/Dimension.html

Это не окончательно, вы можете расширить и перезаписать его для собственного использования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...