Boost Your C# With Behavioural Design Patterns