浅谈 Java 三大特性的意义|设计模式基础

142 阅读2分钟

Java 的三大特性,继承、封装和多态大家应该都有所耳闻。本篇短文,浅谈下这几种特性的意义所在。

前置知识

  • 熟悉面向对象语言
  • 有使用过三大特性的经验

封装

关于封装,其最简单的用法就是,在一个类中把不需要给他人修改和展示的属性或者方法隐藏,其余则的公开。

其作用有几点:

  1. 防止被不熟悉该业务的同事修改,导致数据出错或者功能出错
  2. 让相关类的调用更加简单清晰,只让可调用的方法被暴露,可减小调用者的使用负担

继承

多数面向对象语言中都有继承的特性,这是一个 is-a 的特性。

继承的意义有以下几点:

  1. 解决代码复用问题
  2. 父类、子类与现下生活相似,有结构美

但是过度使用继承,也会使得代码可读性和可维护性变差。提倡 多组合,少继承

多态

多态是使用继承或者基于接口类,来使用子类替换父类

使用多态的几个意义有:

  1. 提高代码的复用性和可拓展性
  2. 隐藏代码功能的具体实现,让代码的调用更加方便
  3. 让代码更加解耦

多态是优雅的设计模式的基础,笔者在前面的封装框架一文中,也用到了多态的特性

带你封装MVP架构(上)|青训营笔记 - 掘金 (juejin.cn)

抽象?

抽象是特性么?抽象在java中是一个特性,但是即使 java 不提供该特性,事实上我们调用函数,也是在实现该特性。

Java 中的抽象类 或者 接口类,都是包含抽象的特性的用法。使用抽象,能让我们不关注于代码本身,而是关注其功能。

为何标题打了 ? ,是抽象不包含于三大特性之中,但是抽象的的应用应该是在编码的全方面的。我们只去调用类的 public 方法可以看作是抽象,将类名显示一个泛化的功能也是抽象。

本文是 设计模式 的基础,了解设计模式不能空泛化,要知晓为什么,怎么做