C语言设计模式