OO 设计5原则
仅有一个引起其变化的原因
欢迎扩展,拒绝修改(关键是抽象)
高层 - > 低层 实现->细节
子类必须能替换成它们的父类(龙生龙,凤生凤,老鼠的儿子会打洞)
客户端不应该被强迫实现一些他们不会使用的接口(霸王条款)