多项选择题

A.多用组合,少用继承
B.多扩展开发,对修改关闭
C.针对接口编程,不针对实现编程
D.依赖抽象,不依赖具体类