建造者模式(Builder Pattern)是一种创建型设计模式,它通过将一个复杂对象的构建过程与它的表示分离,使得同样的构建过程可以创建不同的表示。以下是一个基于ASP.NET Core C#的简单但典型的建造者模式示例。
假设我们要构建一个 Person 类,它有几个可选的属性,如名字、年龄、地址和电话。
Step 1: 定义 Person 类
public class Person
{
public string Name { get; set; }
public int? Age { get; set; }
public string Address { get; set; }
public string Phone { get; set; }
// Override ToString() for better representation
public override string ToString()
{
return $"Name: {Name}, Age: {Age}, Address: {Address}, Phone: {Phone}";
}
}
Step 2: 创建 PersonBuilder 类
public class PersonBuilder
{
private Person _person = new Person();
public PersonBuilder SetName(string name)
{
_person.Name = name;
return this;
}
public PersonBuilder SetAge(int age)
{
_person.Age = age;
return this;
}
public PersonBuilder SetAddress(string address)
{
_person.Address = address;
return this;
}
public PersonBuilder SetPhone(string phone)
{
_person.Phone = phone;
return this;
}
public Person Build()
{
return _person;
}
}
Step 3: 使用建造者模式在ASP.NET Core控制器中创建一个 Person 对象
using Microsoft.AspNetCore.Mvc;
namespace BuilderPatternDemo.Controllers
{
[ApiController]
[Route("[controller]")]
public class PersonController : ControllerBase
{
[HttpGet("create")]
public IActionResult CreatePerson()
{
// 使用建造者模式创建Person对象
var person = new PersonBuilder()
.SetName("John Doe")
.SetAge(30)
.SetAddress("123 Main St")
.SetPhone("123-456-7890")
.Build();
return Ok(person);
}
}
}
Step 4: 配置ASP.NET Core项目
确保你的ASP.NET Core项目已经配置好,并且可以通过HTTP请求访问。你可以通过 dotnet run 命令启动项目,并通过浏览器或工具(如Postman)访问 http://localhost:5000/Person/create。
运行结果
如果一切配置正确,访问上述URL后,你应该会看到类似如下的JSON响应:
{
"name": "John Doe",
"age": 30,
"address": "123 Main St",
"phone": "123-456-7890"
}
这个示例展示了如何使用建造者模式来构建一个复杂的 Person 对象,并将构建过程与对象的表示分离。这种模式在需要逐步构建复杂对象时非常有用,特别是当对象的构建步骤具有多个可选或必需属性时。