1.基础
抽象,封装,多态,继承
2.原则
封装变化
多用组合,少用继承
针对接口编程,不针对实现编程
3.策略模式
定义算法族,分别封装起来,让他们之间可以互相替换,此模式让算法的变化独立于使用算法的客户