https://medium.com/@chengyang1380/%E4%BB%80%E9%BA%BC%E6%98%AF%E5%A5%BD%E7%9A%84%E7%A8%8B%E5%BC%8F%E7%A2%BC-%E5%BE%9E-solid-%E7%9A%84%E8%A8%AD%E8%A8%88%E5%8E%9F%E5%89%87%E5%87%BA%E7%99%BC-%E4%B8%89-%E4%BE%9D%E8%B3%B4%E5%8F%8D%E8%BD%89%E5%8E%9F%E5%89%87-dependency-inversion-principle-dip-44caeaed37b5