Допустим, у меня есть следующий класс и строитель для него:Если Builder вычислять значения параметров
public class A(){
private B b;
private C c;
private A(Builder builder) {
this.b = builder.b;
this.c = bulder.c;
}
public static class Builder() {
private B b;
private C c;
public Builder setB(B b){
this.b = b;
return this;
}
public Builder setC(C c){
this.C = c;
return this;
}
public A build(){
return new A(this);
}
}
}
Теперь давайте предположим, что Ь, с должны быть вычислены каким-то образом (например, на основе списка D). Вопрос:
Где указать параметры заполнения b и c на основе некоторых вычислений, то есть, следует ли размещать вычисления в A, в построителе или где-то еще?
Это кажется странным использованием множителя для меня. Почему вы «A» берете строителя? Если 'b' и' c' не являются необязательными, тогда 'A' должен потребовать их через конструктор. Строитель должен использоваться для установки необязательных (или настраиваемых) свойств 'A', я бы не передал построитель' A'. –
Это не полный класс, это просто пример. Есть больше параметров, которые являются необязательными, поэтому строитель. Я нашел реализацию вроде этого как пример где-то, конструктор А является закрытым, так что я просто избегаю иметь большой конструктор, который будет иметь тот же орган, что и в этом случае, за исключением того, что параметры будут передаваться непосредственно вместо строителя. Если я передам параметры b и c через конструктор, я бы не нарушил концепцию строителя? Где я могу поместить другие параметры, которые являются необязательными? – Marko
Если 'b' и' c' не являются необязательными, то строитель не дает никаких преимуществ, на самом деле он создает проблему, как то, что если я не называю 'setB'? Если они являются необязательными, просто создайте 'A' (в конструкторе построителя) и установите их на' A', когда вызывается метод builder. –