Вообще неплохо иметь частные константы.Хорошо скрывать внутренние классы, в ООП мы называем это инкапсуляцией.Однако я чувствую, что ваш код должен быть немного изменен.
1) Лично я вообще против статических методов, имхо, они не следуют ООП и затрудняют тестирование.Однако куча библиотек и сама java имеют кучу их.Так что дело вкуса, наверное.А если вам нравятся статические методы, вы должны делать их без сохранения состояния, то есть ничего не хранить внутри класса, просто создать результат на основе vector1 и vector2 и вернуть его из метода.
2) Хранение чего-либо в статическомкласс отчасти подвержен ошибкам.Я бы просто создал отдельный класс и назвал бы его VectorBackup.В этом классе я буду хранить вектор, как вы делаете.Затем вы можете создать любое количество экземпляров (резервных копий).Это было бы потокобезопасно (в определенной степени) и больше похоже на ООП.Также было бы легче изменить ваш код в случае, если у вас будет 3 вектора вместо 2.
3) Классы констант должны иметь закрытый конструктор, и они должны быть final
, поэтому никто не сможет их расширить.
public final class Util {
private Util() {
}
public static void doOperation(int[] vector1, int[] vector2) {
int[] result = new int[3];
result[0] = vector1[0] + vector2[2];
result[1] = vector1[1] + vector2[1];
result[2] = vector1[2] + vector2[0];
return result;
}
}
public class Backup {
private final int[] vectorBackup = new int[3];
public Backup(int[] vector) {
vectorBackup[0] = vector[0];
vectorBackup[1] = vector[1];
vectorBackup[2] = vector[2];
}
public int[] restore(){
//some code to create vector from backup
}
}