设计模式之软件开发原则(1)开闭原则和依赖倒置原则  https://juejin.im/post/5c01340551882511a852a332   写得非常详细