面向对象设计原则
单一职责
一个类只应该有一种引起它变化的原因,不要让一个类有多种变化的理由。换句话说,一个类只应该做和一个职责相关的业务,不要让一个类承担过多职责。(高内聚,低耦合)
开闭原则
软件实体应该面向修改关闭,面向扩展开放。其实现的核心是抽象。将”象“的东西抽取出来,便于代码重用,这就是”闭“。将”不象“的东西也抽取出来,便于功能的扩展,这就是”开“。开闭原则是面向对象核心原则
迪米特法则
软件实体之间应该尽量减少交互。不要应该一个类业务的变化而导致另一个类的变化。
聚合/组合复用原则
尽量使用聚合/组合达到代码复用,少用继承实现复用。继承只能单根继承,不能通过继承方式重用多个类的代码。但是,聚合/组合可以。
依赖倒置原则
面向抽象编程,不要面向具体编程。尽量使用抽象耦合代替具体耦合(低耦合)
里氏替换原则
父类出现的地方,子类一定可以替换。如果父类方法在子类中不适用,或父类方法在子类中发生了畸变,则应该断开父子关系,采用聚合/组合实现复用。因为继承具有强制性,父类中所有的属性和方法,子类无条件继承。这样,很容易造成父类中的属性和方法,在子类中不适用的情况。
接口隔离原则
使用专门的接口比用统一接口好。便于项目的组织和分工。不要让开发者面对自己用不到的方法。