Шаблон проектирования - это просто хорошо известная парадигма, т. Е. «Когда хочешь достичь X, делай Y». Хорошо известная парадигма в объектно-ориентированных языках, таких как C #: «когда вы хотите воздействовать на состояние объекта, вызывайте метод для его экземпляра».
Однако до создания методов расширения вы не могли вызвать свой собственный метод для экземпляра объекта, к которому нельзя добавить реализацию (например, интерфейсы, поскольку они не могут иметь реализации, или библиотечные классы, поскольку они уже скомпилированы) , Методы расширения заполняют этот пробел, позволяя сделать методы, которые кажутся , вызываемыми для экземпляров объектов, в то время как они определяются внешним образом для реализации объекта.
Так что да, возможно, методы расширения основаны на этом очень простом шаблоне проектирования, когда методы, воздействующие на состояние объекта, кажутся вызываемыми из его экземпляра.