есть понятие о наследовании, которое я не совсем понимаю. У меня есть
protected DeveloperReport DeveloperReport; // Field
Разве PersonalInfoBuilder не сможет получить доступ к этому полю?
Если да,
public PersonalInfoBuilder MyPersonalInfo => new PersonalInfoBuilder(DeveloperReport);
Почему мне все еще нужно передать DeveloperReport (поле) в конструктор PersonalInfoBuilder, когда я могу просто изменить защищенное поле DeveloperReport с помощью вызов нового PersonalInfoBuilder () вместо нового PersonalInfoBuilder (DeveloperReport)?
И как концепция «вернуть это» возвращает изменения, сделанные в DeveloperReport (поле), обратно в DeveloperReportBuilder?
Спасибо!
class DeveloperReport
{
// Properties
public int Id { get; set; }
public string Name { get; set; }
public DeveloperLevel Level { get; set; }
public int WorkingHours { get; set; }
public int HourlyRate { get; set; }
// Methods
public double CalculateSalary() => WorkingHours * HourlyRate;
}
class DeveloperReportBuilder
{
protected DeveloperReport DeveloperReport;
public PersonalInfoBuilder MyPersonalInfo => new PersonalInfoBuilder(DeveloperReport);
public DeveloperReportBuilder()
{
DeveloperReport = new DeveloperReport();
}
// return developer report.
public DeveloperReport Build() => DeveloperReport;
}
class PersonalInfoBuilder : DeveloperReportBuilder
{
public PersonalInfoBuilder(DeveloperReport report)
{
DeveloperReport = report;
}
public PersonalInfoBuilder()
{
}
public PersonalInfoBuilder NameIs(string name)
{
DeveloperReport.Name = name;
return this;
}
public PersonalInfoBuilder IDis(int id)
{
DeveloperReport.Id = id;
return this;
}
}