什么是抽象

在开发过程当中,其实老是能够听到“抽象”这个词。我想说说抽象是什么意思。其实人类处理的全部信息都是抽象的,在这个层面上的抽象指的就是提取事务的共性。抽象是一个动做,抽象的结果每每就会产生一个概念。而一个概念每每有其内涵和外延。这些是哲学方面的一些内容。在人们的平常工做以及生活中,每每还有许多约定俗成的概念,这些概念构成一我的平常生活的精神环境,若是这些概念发生变化,那么其中的人每每会感受很难受。所以人们每每不肯接受改变,其实也就是由于这个缘由。java

软件开发领域中的抽象其实随处可见,可是人们每每听过的就是抽象类。抽象类是java语言中的一个概念,因为java语言十分的流行,因此大多数写过程序的人,每每都据说过这个概念。因此一说“抽象”这个词,不少人就会马上想到抽象类上面去。但其实否则。程序员

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

为何须要区分程序中不变和可变的部分?我以为主要有如下几个缘由:设计

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

在我看来,经过设计其实每每很难一次就获得一个很是好的抽象,由于你须要同时很是了解业务和编程技术,同时精通这二者的人很少。因此好的抽象通常都须要经过不断的重构来得到。所以软件开发不是一个一锤子买卖,一个好的软件每每须要持续不断的投入,才能愈来愈好。事务

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

相关文章
相关标签/搜索