一、单一职责原则
每一个类只负责一项工作或职责,类中应该是一组相关性很高的函数、数据的封装。
定义职责:根据具体的经验和具体的业务逻辑、功能进行拆分。
降低代码耦合度:通过职责拆分,类之间的依赖关系更清晰,降低代码的耦合度。
提高可维护性和可读性:单一职责的类更容易维护,开发者可以快速定位到问题的具体位置,不需要额外阅读大量无关的代码。
促进重用性:单一职责或功能的类更易于在其他上下文中重用,功能单一也更容易集成到其他项目中。
二、开闭原则
软件中的对象(类、模块、函数等)应该对于扩展是开放的,但是对于修改时封闭的。
-
对扩展开放:当需求变化时,应该能够通过添加新的代码而不是修改已有的代码来扩展软件的行为。例如,在一个图形编辑器中,若要支持新的形状类型,应当能够在不修改现有形状处理逻辑的情况下,实现并添加这种新形状的支持。
-
对修改关闭:已经经过测试和验证的代码不应该因为需求的变化而被直接修改,以避免引入新的错误。保持原有代码的稳定性是开闭原则的核心思想之一。
实现策略
-
使用抽象构建框架:通过定义抽象层(如接口或抽象类),可以让具体实现细节依赖于这些抽象而非其他具体实现。这样,当需要新增功能时,只需添加新的具体类而不必修改原有的抽象层。