I would like to know if C# extension method is based on any existing design pattern.
No. It's just a language feature.