软件设计七大原则是一组被广泛认可的指导方针,旨在帮助开发者构建高内聚、低耦合、易维护、易扩展的软件系统。这七原则是学习设计模式的前置基础,通常七原则被分为两组:
第一组:SOLID原则(面向对象设计的五大核心原则,关注类和模块的内部设计以及他们之间的顶层依赖关系)
1.单一职责原则:一个类只负责一项职责,避免“万能类”。
2.开闭原则:对扩展开放,对修改关闭。尽量通过新增代码扩展功能,而非修改现有代码。
3.里氏替换原则:子类对象必须能够替换父类对象,且程序逻辑不受影响。
4.接口隔离原则:接口要小而专(客户端不应被迫依赖它不需要的接口。胖接口应拆分为多个专门的小接口)。
5.依赖倒置原则:依赖抽象,不依赖具体实现(高层模块不应依赖底层模块,两者都应该依赖抽象(接口/抽象类);抽象不依赖细节,细节依赖抽象)。
第二组:辅助性经典原则(对象间的组合与复用方式)
6.迪米特法则(最少知识原则):一个对象应尽可能少与其他对象发生相互作用,即减少类之间的耦合
7.合成复用原则:尽量使用对象组合(聚合)方式实现代码复用,而不是使用继承(因为组合耦合度更低,更灵活)