JAVA面向对象编程思想

158 阅读3分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

翻看之前总结的文本,整理时在重新理解这些概念,发现编程思想真的非常重要,是怎么把复杂的逻辑梳理结构化的过程。

如何理解面向对象编程

只定义业务的框架,而不去实现具体业务功能。就像盖楼房,有楼梯、电梯、门的位置等;只提供了一个框架和公共设施,不去管住户室内的设计,让住户按照自己的需求去实现。如Struts:提供了MVC的流程架构,具体的展示和业务实现交给用户处理。

面向接口编程:实现应用层与实现层的分离,提高系统维护和扩展。通过接口约束对象的属性和行为,是面向对象的一部分。

面向对象编程优点:

1)易维护:代码可读性高,维护成本低 2)易扩展:由于封装、继承、多态的特征设计出高内聚、低耦合的系统架构,提高系统灵活性和扩展性。

耦合:模块之间的关联强度应该是比较弱的,即低耦合。 内聚:模块内的各个元素的联系时紧密的,即高内聚。 面向对象编程是一种思想。主要特征是:封装、继承、多态、抽象。5个设计原则。

面向对象编程特征:

  • 封装:把过程和数据包围起来,通过已定义的界面访问数据。提高代码重用性。
  • 继承:对象的一个新类可以从现有的类中派生,这个过程叫做继承。新类继承了原有类的属性和方法。提高代码重用性。
  • 多态:允许不同类的对象对同一消息做出响应。提高灵活性和重用性。
  • 抽象:分离对象的行为和实现。

面向对象设计原则:

  • 单一职责原则(Single Responsibility Principle-SRP):一个对象只有一种单一的职责。过多的职责会使代码牵一发而动全身。
  • 开放封闭原则(Open-Closed Principle-OCP):对扩展开放,对修改封闭。是面向对象所有原则的核心。
  • 依赖倒置原则(Dependency Inversion Principle-DIP):核心思想是依赖于抽象,不依赖于具体。是面向对象设计的精髓。抽象的稳定性决定了系统的稳定性,因为抽象是不变的。
  • 接口隔离原则(Interface Segregation Principle-ISP):定义许多特定的接口好过定义一个通用的接口。
  • 里氏替换原则(Liskvo Substitution Principle-LSP):程序中子类必须能够替换其父类,这是保证继承复用的基础。是关于继承机制的设计原则。保证系统具有良好的拓展性,同时实现基于多态的抽象机制,能够减少代码冗余,避免运行期的类型判别。
  • 迪米特法则(Law of Demeter or Least Knowlegde Principle-LoD or LKP):一个对象应该尽可能少的去了解其他对象。松耦合原则。