①、软件设计的真正要做的许多内容,就是发现职责,并把那些职责相互分离(单一职责)
②、软件实体(类、模块、函数等等)应该可以扩展,但是不可修改。(开闭原则)
③、针对接口编程,不要对实现编程。也就是针对抽象编程而不要针对细节编程(依赖倒转)
④、在软件里面,把父类都替换成它的子类,程序行为没有变化(里氏代换)
⑤、类之间的耦合越弱,越有利于复用,一个处在弱耦合的类被修改,不会对有关系的类造成波及(迪米特)
Ps:继策略模式之后,书中用了大量的篇幅诠释了这些概念性的东西,笔者挑重点罗列了一番