c# 实现设计模式