Это "int2rgb" хорошее имя метода?


Все цвета могут быть представлены в инт, и часто вы хотите сделать отдельные красные, зеленые и синие значения от инт.

У меня есть способ int2rgb (и еще называют rgb2int), что делает это. Это ясный/доброе имя?

public static int[] int2rgb(final int color) {
    return new int[] { (color >> 16) & 0xFF, (color >> 8) & 0xFF, color & 0xFF };
}

public static int rgb2int(final int red, final int green, final int blue) {
    return (red << 16) + (green << 8) + blue;
}

public static int rgb2int(final int[] color) {
    return (color[0] << 16) + (color[1] << 8) + color[2];
}

И в случае, если вы заинтересованы, остальная часть класса находится здесь.



391
2
задан 9 сентября 2011 в 08:09 Источник Поделиться
Комментарии
3 ответа

Насколько именования обеспокоен: через 2 вместо того, чтобы там ни-ни - "чтобы" пишется везде в Java стандартные библиотеки. Конвенции далее в Java именования капитализировать каждое слово, но первый в имена методов, за исключением сокращений, которые являются заглавными буквами независимо от того, где они появляются в названии. Поэтому методы должны называться intToRGB и RGBtoInt (в Ниже случае, потому что это напрямую следует аббревиатура - сравните например цвет.RGBtoHSB в Java стандартные библиотеки).

По поводу кода: я бы рекомендовал представляющих свои цвета как цвета объектов, а не 3-элемент массива. Если вы решите сделать это, вы не должны определить любым из методов, потому что функциональность уже существует в цвет класса.

10
ответ дан 9 сентября 2011 в 09:09 Источник Поделиться

Сделать РГБ класса со свойствами красного, зеленого и синего и добавить статический FromInt() метод, или РГБ(int цвета) конструктор.

1
ответ дан 9 сентября 2011 в 10:09 Источник Поделиться

Капитализация:

Я хотел бы использовать что-то в виде rgbToInt или intToRgb. Я знаю, документации javadoc говорит, что сокращения должны быть оприходованы, но это приводит к некоторым странным результатам (В. Г., РГБ rGBVariable;)

1) Джоэл Спольски рекомендует использовать "форму" вместо "чтобы", так код легче читать.
Сравнить

Rgb rgbVariable = intToRgb(intVariable); // mix of `rgb` an `int` in the line

для

Rgb rgbVariable = rgbFromInt(intVariable); // `rgb` to the right, `int` to the left; mistakes are easier to spot

Подробнее здесь http://www.joelonsoftware.com/articles/Wrong.html

1
ответ дан 10 апреля 2014 в 09:04 Источник Поделиться