У меня есть класс с двумя переменными экземпляра.Какой лучший дизайн?
class SomeName {
String a;
String b;
String c;
String d;
SomeName(String a, String c){
this.a = a;
this.c = c;
process(a,b);
process(c,d);
}
public void process(String a, String b){
// Some complex operation on 'a'
// instance variable 'b' is initialized based on the result
b = result;
}
}
Две из переменных экземпляра класса инициализируются вызовом моего конструктора. Другие инициализируются путем выполнения некоторых операций над прежними переменными. Теперь я понимаю, что вызов метода процесса в конструкторе с переменными экземпляра в качестве параметров является плохим дизайном.
process(a,b);
process(c,d);
Есть ли альтернативные способы достижения того же, что я пытаюсь сделать?
Другими словами ........
Я получаю значение «а» снаружи. Мне нужно сделать некоторую операцию над этим и назначить его «b». То же самое относится к 'c' и его паре 'd'. Поскольку обе операции одинаковы, я написал это как обычный метод process()
. Но я передаю переменные экземпляра в качестве аргументов, которые являются плохим дизайном. Пожалуйста, предложите альтернативу для этого плохого подхода к дизайну.
как заметка на полях, обратите внимание, что метод 'процесса (String а, строка б)' может получить перекрываться наследуемым классом. вы можете просто перегрузить метод 'process' с помощью частного, и вызвать это или сделать его окончательным. – SomeJavaGuy
Коррекция: у вас есть класс с четырьмя переменными экземпляра. –
вы не должны вызывать неконфиденциальные методы от конструкторов. –