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