在机房重构刚开始时,对于DataTable和泛型都不是很了解。这篇博客,就来讲解一下二者之间的区别吧!
(一)DataTable
我们在机房重构的一开始肯定都用到了DataTable,那么,什么是DataTable?
DataTable表示临时保存数据的网格虚拟表,它完全是在内存中的一个独立存在,包含了这张表的全部信息。DataTable可以是从通过连接从数据库中读取出来形成的一个表,一旦将内容读到DataTable中,此DataTable就可以跟数据源断开而独立存在;也可以是完全由程序自己通过代码来建立的一个表。
我们在机房重构的时候,D层与数据库交互,一般得到DataTable或DataSet对象,然后返回给B层,B层再读取数据,有时DataTable也会被传到UI层,用来显示数据。
使用DataTable要读取字段,容易写错,而且编译器不检查。二来,不符合面向对象的思想。我们引入三层甚至是七层,是为了解耦,这是面向对象的目的之一,DataTable却一直活动在各层之间。
那么怎么办呢?我们来看一下泛型。
(二)泛型
泛型是程序设计语言的一种特性。允许程序员在强类型程序设计语言中编写代码时定义一些可变部分,那些部分在使用前必须作出指明。各种程序设计语言和其编译器、运行环境对泛型的支持均不一样。将类型参数化以达到代码复用提高软件开发工作效率的一种数据类型。泛型类是引用类型,是堆对象,主要是引入了类型参数这个概念。
当然,上面那段比较“官方”,我也不是很懂……
泛型,我就把它和DataTable都理解成了一个盛放数据的容器。只不过里面的结构和盛放方式不同而已。
如上图,DataTable放的是字段,而泛型放的是实体。
那么,泛型如何使用呢?给大家推荐一下郑浩同学的博客,介绍的很详细。这里就不多说了。
一路重构走下来,发现重构的过程,就是我们在一步一步解耦和面向对象的过程。或许走得有些曲折,但是重在收获!