扩展方法是否遵循开闭原则
Is extension methods follow open close principle
我的问题是扩展方法和开闭原则:
为 类 创建扩展方法是否遵循开闭原则?
如何测试使用扩展方法的 类?
- Do creating extensions methods for classes follow open-close principle?
从技术上讲是的,因为大多数正式定义都指出 open/closed 原则是 "Closed for modification, but open for extension"。由于扩展方法不修改原始 class,而只是扩展它,因此扩展方法符合此定义。
- How do I test classes that use extension methods?
就像任何其他测试一样:
示例扩展方法:
public static class Extensions
{
public static string ToLowerAndTrim(this string source) => source.Trim().ToLower();
}
使用 XUnit 的测试用例:
[Fact]
public void SampleTest()
{
string input = " Hello World ";
string expected = "hello world";
string actual = input.ToLowerAndTrim();
Assert.Equal(expected, actual);
}
我的问题是扩展方法和开闭原则:
为 类 创建扩展方法是否遵循开闭原则?
如何测试使用扩展方法的 类?
- Do creating extensions methods for classes follow open-close principle?
从技术上讲是的,因为大多数正式定义都指出 open/closed 原则是 "Closed for modification, but open for extension"。由于扩展方法不修改原始 class,而只是扩展它,因此扩展方法符合此定义。
- How do I test classes that use extension methods?
就像任何其他测试一样:
示例扩展方法:
public static class Extensions
{
public static string ToLowerAndTrim(this string source) => source.Trim().ToLower();
}
使用 XUnit 的测试用例:
[Fact]
public void SampleTest()
{
string input = " Hello World ";
string expected = "hello world";
string actual = input.ToLowerAndTrim();
Assert.Equal(expected, actual);
}