Java 面向对象的 6 大基本原则

159 阅读3分钟

Java 面向对象的 6 大基本原则

  • SOLID 原则,旨在帮助开发者编写更加可维护、可扩展和可重用的代码,SOLID 意思是可靠的、良好的、坚固的和稳定的,方便记忆,额外可能还有个 CRP 合成复用原则
  • SRP 单一职责原则
  • OCP 开放封闭原则
  • LSP 里氏替换原则
  • ISP 接口隔离原则
  • DIP 依赖倒置原则
  • LOD 迪米特法则(LKP 最少知识原则)

Single Responsibility Principle 单一职责原则

  • 一个类只负责一件事,即一个类应该只负责一项职责、功能,应该有且只有一个去改变它的原因、理由,推荐将复杂的类分解为更小、更专注的类,从而提高代码的可读性和可维护性,是 SOLID 所有原则的基础和解决问题的基本思路

Open Closed Principle 开放封闭原则

  • 软件实体(如类、模块、函数等)应该对扩展开放,对修改封闭,可以去扩展(添加)属性和功能,但是不要直接修改已有的属性和方法,当需要添加新功能时,应该通过扩展现有代码的方式来实现,而不是直接修改现有的代码,所以要尽量多考虑接口封装抽象,这个原则有助于保持现有代码的稳定性和可靠性,同时降低维护成本,是面向对象设计最核心的原则

Liskov Substitution Principle 里氏替换原则

  • 子类应该能够替换父类并且不影响程序的正确性,这意味着子类的对象应该能够在不改变程序期望行为的情况下,替换掉父类的对象,这个原则强调了继承关系的正确使用,避免引入潜在的错误

Interface Segregation Principle 接口隔离原则

  • 应该创建多个粒度小的接口,而不是搞一个大而全的接口,让实现类只需要关心它们真正需要的接口,这个原则有助于减少不必要的依赖,提高代码的灵活性和可维护性

Dependency Inversion Principle 依赖倒置(反转)原则

  • 高层模块不应该依赖于低层模块,二者都应该依赖于抽象,而抽象不应该依赖于具体实现,具体实现应该依赖于抽象,所以要使用依赖注入和接口编程,以降低代码的耦合提高代码的可测试性

Law of Demeter Principle 迪米特法则

  • 又叫 LKP 最少知识原则(Least Knowledge Principle),一个对象应该对其他对象有尽可能少的了解,只和直接相关的对象进行交互,不和陌生对象交互

Composite Reuse Principle 合成复用原则

  • 也叫组合 / 聚合复用原则,在复用软件组件时应该优先采用对象组合(has-a)或聚合(contains-a)的方式,而不是通过继承来实现