Design Patterns in .NET 6