c#常用设计模式面试