Существующие классы часто предлагают полезные методы. Но что делать, если нужного просто нет? Не волнуйтесь, решение называется «Метод расширения», и его легко понять и использовать.

  • Что такое метод расширения?
  • Реализация метода расширения
  • Объяснение
  • Архитектурная интеграция
  • Заключение

Что такое метод расширения?

Большинство из вас уже знакомы с принципом открытого-закрытого — и здесьвы все равно должны помнить об этом.

Существующий программный код должен быть открыт для нового поведения, но закрыт для изменений. Однажды написанный (и протестированный) код больше никогда не придется изменять. Однако это также означает, что его можно расширить.

Методы расширения позволяют расширять существующие типы новыми методами без изменения определения исходного типа. Метод расширения — это статический метод статического класса, в котором модификатор this передается первому параметру.

Реализация метода расширения

Объяснение

Первый метод ReverseAndAddSumAsLastElement() — это просто пример случайного выполнения чего-то. Но второй показывает, что вы можете называть его так, как будто это метод экземпляра.

Как видите, большим преимуществом является то, что вам не нужно передавать здесь список в качестве параметра. Кроме того, каждый список, который вы создадите, имеет этот метод в качестве опции.

Архитектурная интеграция

В основном, следует соблюдать принципы чистой архитектуры. Подробные инструкции по правильной сборке программного обеспечения на C# вы можете найти здесь:

.Net C# — чистая архитектура и принцип инверсии зависимостей

Методы расширения должны быть предоставлены в отдельной папке на уровне предметной области, поскольку они могут использоваться всеми другими уровнями.

Заключение

На мой взгляд, методы-расширения дают явное преимущество, если вы хотите чаще использовать методы и не хотите получать соответствующие данные через параметры. Пожалуйста, имейте в виду, что вы всегда должны придерживаться принципов Чистой Архитектуры. Определение методов расширения на уровне предметной области позволяет избежать повторения кода и создать чистый код и архитектуру.

Спасибо за чтение, и если вам понравилась эта статья, пожалуйста, подпишитесь на меня, чтобы узнать больше!

Пожалуйста, ознакомьтесь с другими моими статьями: