Middle
Як намунаи татбиқи намунаи тарҳсозии 'Сохтмонг' дар C#-ро пешниҳод кунед.
sobes.tech AI
Ҷавоб аз AI
Шаблон "Бунёдкор" процеси сохтани объекти мураккабро аз намоиши он ҷудо мекунад, то ки як ҳамон процеси сохтани метавонад намоишҳои гуногунро эҷод кунад. Ин вақте истифода мешавад, ки сохтани объект ба чанд қадам ва конфигуратсия ниёз дорад.
// Интерфейси бунёдкор барои эҷоди қисмҳои объект.
public abstract class Builder
{
public abstract void BuildPartA();
public abstract void BuildPartB();
public abstract Product GetResult();
}
// Бунёдкори мушаххас интерфейси Builder-ро иҷро мекунад
// ва қисмҳои маҳсулотро месозад ва ҷамъ мекунад.
public class ConcreteBuilder : Builder
{
private Product _product = new Product();
public override void BuildPartA()
{
_product.Add("PartA");
}
public override void BuildPartB()
{
_product.Add("PartB");
}
public override Product GetResult()
{
return _product;
}
}
// Маҳсулот объекти мураккабро намояндагӣ мекунад, ки бояд сохта шавад.
public class Product
{
private List<string> _parts = new List<string>();
public void Add(string part)
{
_parts.Add(part);
}
public void ListParts()
{
Console.WriteLine("Қисмҳои маҳсулот: " + string.Join(", ", _parts));
}
}
// Директор объектро бо истифода аз интерфейси Builder месозад.
public class Director
{
public void Construct(Builder builder)
{
builder.BuildPartA();
builder.BuildPartB();
}
}
// Мисоли истифода
public class Program
{
public static void Main(string[] args)
{
Director director = new Director();
ConcreteBuilder builder = new ConcreteBuilder(); // Мо бунёдкорро месозем
director.Construct(builder); // Директор раванди сохтаниро роҳбарӣ мекунад
Product result = builder.GetResult(); // Маҳсулоти тайёрро мегирем
result.ListParts(); // Қисмҳои маҳсулотро мебарорем
}
}
Компонентҳои асосӣ:
- Builder: Интерфейси абстрактӣ барои сохтани қисмҳои маҳсулоти ниҳоӣ.
- ConcreteBuilder: Имплементасияи мушаххаси Builder, ки қисмҳои маҳсулотро месозад ва ҷамъ мекунад.
- Director: Класс, ки бо истифода аз Builder барои сохтани қадам ба қадам объекти, намедонад, ки он чӣ навъ аст.
- Product: Объекти мураккаб, ки сохта мешавад.
Ин мисол нишон медиҳад, ки чӣ гуна Director бо истифода аз ConcreteBuilder барои эҷоди Product қадам ба қадам, раванди сохтани онро аз намоиш ҷудо мекунад.