美文网首页
什么是抽象

什么是抽象

作者: clarkhill | 来源:发表于2015-12-11 23:48 被阅读70次

在开发过程中,其实总是可以听到“抽象”这个词。我想说说抽象是什么意思。其实人类处理的所有信息都是抽象的,在这个层面上的抽象指的就是提取事务的共性。抽象是一个动作,抽象的结果往往就会产生一个概念。而一个概念往往有其内涵和外延。这些是哲学方面的一些内容。在人们的日常工作以及生活中,往往还有许多约定俗成的概念,这些概念构成一个人日常生活的精神环境,如果这些概念发生变化,那么其中的人往往会感觉很难受。因此人们往往不愿接受改变,其实也就是因为这个原因。

软件开发领域中的抽象其实随处可见,但是人们往往听过的就是抽象类。抽象类是java语言中的一个概念,由于java语言十分的流行,所以大多数写过程序的人,往往都听说过这个概念。所以一说“抽象”这个词,很多人就会立刻想到抽象类上面去。但其实不然。

在我看来,软件开发中的抽象指的是:用某种技术手段来区分和确立程序中不变的部分和可变的部分。因为程序以及软件都是解决问题的,有所不同的是,程序可能解决的是一个小问题,而软件往往解决都都是复杂一些的大问题。所以软件中抽象就很重要。

为什么需要区分程序中不变和可变的部分?我觉得主要有以下几个原因:

  1. 事有轻重缓急;重要的主要的事情可以先固定下来,次要的事情可以作为可变的部分留到后面解决。
  2. 人的技术水平也有差异;困难的事情可以作为不变的部分固定下来,由水平高的程序员负责,简单的事情可以作为能够变化的部分分离出来,由水平差一些的程序员负责。
  3. 代码复用;复用程度高的代码,往往可以作为不变的部分固定下来,复用程度低得代码,可以作为变化的部分隔离出来。

在我看来,通过设计其实往往很难一次就得到一个非常好的抽象,因为你需要同时非常了解业务和编程技术,同时精通这两者的人不多。所以好的抽象一般都需要通过不断的重构来获得。因此软件开发不是一个一锤子买卖,一个好的软件往往需要持续不断的投入,才能越来越好。

综上,我认为,软件开发中所谓的抽象,其实就是分离主次。主要的东西需要固定不变,次要的东西缺往往需要变化多端。那么分离变化与不变,就是在做分离主次的工作。所谓主次分明,井井有条。这样的系统才容易扩展和维护。

相关文章

  • 什么是抽象

    在开发过程中,其实总是可以听到“抽象”这个词。我想说说抽象是什么意思。其实人类处理的所有信息都是抽象的,在这个层面...

  • 什么是抽象类

    抽象类: 抽象类是没有具体实例对象的类(就是不能使用new方法进行实例化的类),抽象类有点类似于“模板”的作用,目...

  • 什么是抽象类?

    第四章 抽象类 4.1 抽象类概述(以下内容可能有点烦 但是通俗易懂 简直舒服) 我们创建一个动物类,并且在这个类...

  • 抽象类

    什么是抽象类 抽象类的特征 抽象类的意义

  • 第5章:Java高级类特性5:抽象类_接口_工厂方法_内部类

    时间:2018-07-26 作者:魏文应 一、抽象类 什么是抽象类? 什么叫抽象类?我们先看下面例子: 抽象类 ...

  • 零散专题35 AST抽象语法树.md

    什么是抽象语法树 抽象语法树(abstract syntax tree,AST,或者简称语法树)是源代码的抽象语法...

  • 继承 利用方法的重写实现多态 (bu) 2018-09

    一、抽象类1.什么是抽象类:使用abstract定义的类就是抽象类.注意:抽象类中可以出现抽象方法. 2.定义抽象...

  • 抽象类和接口

    抽象类: 1、什么是抽象类? 用关键字 abstract 修饰的类是抽象类。 也可以说含有抽象方法的类称为抽象类。...

  • 抽象类抽象方法

    什么是抽象方法? 抽象类中定义的,没有具体实现的方法,这个方法必须被子类的方法重写. 什么是抽象类? abstra...

  • 接口和抽象类有什么区别

    接口和抽象类的概念不一样,接口是对动作的抽象,抽象类是对根源的抽象。 抽象类表示的是,这个对象是什么。接口表示的是...

网友评论

      本文标题:什么是抽象

      本文链接:https://www.haomeiwen.com/subject/mmbyhttx.html