【问题标题】:Is extension methods follow open close principle扩展方法是否遵循开闭原则
【发布时间】:2020-08-05 01:20:48
【问题描述】:

我的问题是关于扩展方法和开闭原则:

  1. 为类创建扩展方法是否遵循开闭原则?

  2. 如何测试使用扩展方法的类?

【问题讨论】:

标签: c# extension-methods open-closed-principle


【解决方案1】:
  1. 为类创建扩展方法是否遵循开闭原则?

技术上是的,因为大多数正式定义都表明开放/封闭原则是“封闭以供修改,但开放以供扩展”。由于扩展方法不会修改原始类,而只是对其进行扩展,因此扩展方法符合此定义。

  1. 如何测试使用扩展方法的类?

就像任何其他测试一样:

扩展方法示例:

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);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-03-22
    • 1970-01-01
    • 2021-11-06
    • 1970-01-01
    • 1970-01-01
    • 2018-03-10
    • 1970-01-01
    相关资源
    最近更新 更多