机房收费系统合作版(四)——泛型之解

************前言:

开篇起笔先问:“泛型是什么”?解:泛型是类型抽象类。作用是什么:“通过对类型的抽象。封装。大量降低我们的代码量”。

 

从開始学习面向对象。“抽象”一词就不断的在耳边反复。

可是在没有做过项目之前,尤其是在没有尝试着用面向对象的思维去做项目之前。“抽象”在脑子里永远都是一个虚无缥缈的词儿。那么在详细的项目中,我们是怎样一步一步地把“抽象”变得详细课件的呢?——继承,泛型……

 

************“泛型”与抽象的不解之缘:

  • 图一:没有使用框框架时的DAL层类图


注意:

①同样:该层类图存在大量的反复代码。类中的方法有90%的相似度

②不同:每一个类的传入实体和返回实体个不同

 

 

  • 图二:使用OOFramework框架的DAL层类图(依据图三画的)


注意:

公共的方法抽象出来放到了RepositoryBaseDAL类中。并向外提供一个接口。

每一个详细的类有自己的接口,此例中是IUserDAL(此接口也是向外暴露的接口)。便与扩充属于UserDAL类自身的方法。公共的方法则继承自RepositoryBaseDAL类。

 

參数是:T,Tcollection。就是我们今天的主角“泛型”。


使用此策略攻克了图一中存在的问题。

同一时候也为框架之路铺好了垫脚石。

 

  • 图三:DAL层总体架构图



************自解:

在学习泛型之初非常是不理解泛型。也不能理解“对类型的抽象”的意思,只是通过一个项目的体验之后。如今能够大致的理解“泛型”。事实上“泛型”所起的作用就跟抽象类。抽象方法所起的作用是一样的,仅仅只是它是为了给类或方法后的括号中的东西来做抽象。

 

************优点:

①为不同对象提供服务:有了泛型,但是使同样的代码服务于不同的对象。

②抽象更加完好:没有泛型,我们仅仅能抽象一些类,抽象方法。可是有了“泛型”。我们将传入的參数以及返回值都能够进行抽象。

③降低代码反复量:抽象可以降低大量的代码。“泛型”是抽象的一小部分。所以“泛型”必须学习。

④面向对象的必经之路:面向对象的三大要素基于抽象,而“泛型”是抽象的一小部分,所以“泛型”是面向对象的必经之路。

⑤架构之路的開始:要想做好架构,面向对象必须是必须掌握的。而“泛型”是衡量是否面向对象的一个重要标志。

 

************总结:

曾在《机房收费系统合作版(一)——框架搭建》中展示过该系统的架构,可是米老师却在评论中写道:“

在这个系统中,没有看到你使用泛型啊!”当时不是非常理解。老师为什么会说我没实用泛型,这次总结再返回去看那篇博客才知道,自己在框架图中忘了画泛型了。也许在当时看来仅仅是忘了,可是如今看来。当初肯定不是忘了,而是根本就不理解泛型。

如今将那篇博客的图纠正于此:


 

posted @ 2017-05-24 14:02  gccbuaa  阅读(130)  评论(0编辑  收藏  举报