Using C# , Just practice design pattern