Методы расширения следуют принципу открытого закрытия - PullRequest
0 голосов
/ 22 апреля 2020

Мой вопрос касается метода расширения и принципа открытого закрытия:

  1. Следуют ли методы создания расширений для классов принципу открытого закрытия?

  2. Как проверить классы, использующие методы расширения?

1 Ответ

0 голосов
/ 22 апреля 2020
  1. Следуют ли методы создания расширений для классов принципу open-close?

Технически да, так как в большинстве формальных определений утверждается, что принцип open / closed является "Closed для модификации, но открытой для расширения ". Поскольку методы расширений не модифицируют исходный класс, а только расширяют его, методы расширения соответствуют этому определению.

Как проверить классы, использующие методы расширения?

Как и любой другой тест:

Пример метода расширения:

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