单一职责原则:一个类只应该有一个引起他变化的原因,不要让一个类拥有多种变化的理由,换句话说,一个类只应该完成和一个职责相关的业务,不要让一个类承担过多的职责。也要考虑粒度的大小根据业务来,一般来说,简单的职责,可以让一个类兼任,复杂职责,必须独立(高内聚指的就是单一职责原则,一个类职责越单一,内聚度越高)
开闭原则:软件实体应该面向修改关闭,面向扩展开放。其实现的核心就是“抽象”。把我们相同的代码抽取出来,便于重用,这就是“闭”,把不同的代码也抽取出来,便于功能的扩展,这就是“开” 开闭原则是设计原则的核心原则,其他设计原则,都是开闭原则的体现,和补充。
聚合/组合复用原则:尽量 使用聚合/组合完成代码复用,少用继承复用,继承在java中只能单根继承,不能通过继承实现多个类代码的复用,但是,集合/组合 可以
迪米特法则:软件实体之间应该尽量减少交互,不要因为一个类业务的变化,而导致另一个也变化,不和陌生人说话
依赖倒置原则:面向抽象编程,不要面向具体编程,尽量使用抽象耦合代替具体耦合。低耦合指的就是依赖倒置原则
里氏替换原则:父类出现的地方,子类一定可以替换,如果在父类的方法在子类中不适用,或者在子类中发生了畸变,则应该断开父子关系,父类的方法子类无条件继承,很可能导致父类方法在子类中不使用的情况,
接口隔离原则:使用专门的接口比统一接口好,便于项目的组织和分工,不要让开发者面对自己用不到的方法