advanced version 1.1
advanced version 1.2

1. 增加了int表示类型，降低比较操作的开销
2. 修改了类结构，尝试使用策略模式失败