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-%E5%9B%9B-%E9%87%8C%E6%B0%8F%E6%9B%BF%E6%8F%9B%E5%8E%9F%E5%89%87-liskov-substitution-principle-lsp-cc43af8346bc