practice of DIP
Merge https://github.com/houyunting/practiceDIP