Revert "Revert "* 重构""

This reverts commit 6de0d7837ee13958e0c3e39465b5ef2fd366e8e3.