利用委托(delegate)好像也能解决避免大量switch case的代码。