针对接口编程,而不是针对实现编程. 优先使用对象组合,而不是类继承. 考虑你的设计中哪些是可变的(不是考虑什么会迫使你的设计改变,而是考虑你想要什么变化而不会引起重新设计,用现有设计有效对付变化), 并封装变化的概念. 高内聚低耦合:高内聚的意思就是把逻辑上可以归在一起的东西放在一起。