// Конкретные Строители должны предоставить свои собственные методы // получения результатов. Это связано с тем, что различные типы // строителей могут создавать совершенно разные продукты с разными // интерфейсами. Поэтому такие методы не могут быть объявлены в базовом // интерфейсе Строителя (по крайней мере, в статически типизированном // языке программирования). // // Как правило, после возвращения конечного результата клиенту, // экземпляр строителя должен быть готов к началу производства // следующего продукта. Поэтому обычной практикой является вызов метода // сброса в конце тела метода GetProduct. Однако такое поведение не // является обязательным, вы можете заставить своих строителей ждать // явного запроса на сброс из кода клиента, прежде чем избавиться от // предыдущего результата. public Telephone GetProduct() { Telephone result = this._telephone; this.Reset(); return(result); }
public void Reset() { this._telephone = new Telephone(); }