c# design patterns | Comidoc