设计模式之Builder建造者模式|设计模式之Builder建造者模式 代码初见
设计模式之Builder建造者模式 代码初见
public class EmployeeBuilder
{
private int id = 1;
private string firstname = "first";
private string lastname = "last";
private DateTime birthdate = DateTime.Today;
private string street = "street";
public Employee Build()
{
return new Employee(id, firstname, lastname, birthdate, street);
}public EmployeeBuilder WithFirstName(string firstname)
{
this.firstname = firstname;
return this;
}public EmployeeBuilder WithLastName(string lastname)
{
this.lastname = lastname;
return this;
}public EmployeeBuilder WithBirthDate(DateTime birthdate)
{
this.birthdate = birthdate;
return this;
}public EmployeeBuilder WithStreet(string street)
{
this.street = street;
return this;
}public static implicit operator Employee(EmployeeBuilder instance)
{
return instance.Build();
}
}
测试
public class EmployeeTest
{[Test]
public void GetFullNameReturnsCombination()
{
// Arrange
Employee emp = new EmployeeBuilder().WithFirstName("Kenneth")
.WithLastName("Truyers");
// Act
string fullname = emp.getFullName();
// Assert
Assert.That(fullname, Is.EqualTo("Kenneth Truyers"));
}[Test]
public void GetAgeReturnsCorrectValue()
{
// Arrange
Employee emp = new EmployeeBuilder().WithBirthDate(new DateTime(1983, 1,1));
// Act
int age = emp.getAge();
// Assert
Assert.That(age, Is.EqualTo(DateTime.Today.Year - 1983));
}
}
参考
想要看到更多玮哥的学习笔记、考试复习资料、面试准备资料?想要看到IBM工作时期的技术积累和国外初创公司的经验总结?
文章图片
image 敬请关注:
玮哥的博客 —— CSDN的传送门
玮哥的博客 —— 的传送门
玮哥的博客 —— 博客园的传送门
【设计模式之Builder建造者模式|设计模式之Builder建造者模式 代码初见】玮哥的博客 —— 51Testing的传送门
推荐阅读
- PMSJ寻平面设计师之现代(Hyundai)
- 太平之莲
- 闲杂“细雨”
- 七年之痒之后
- 深入理解Go之generate
- 由浅入深理解AOP
- 期刊|期刊 | 国内核心期刊之(北大核心)
- 生活随笔|好天气下的意外之喜
- 感恩之旅第75天
- python学习之|python学习之 实现QQ自动发送消息