可以使用的第一版。

有时间必须重构下。