************前言:
开篇起笔先问:“泛型是什么”?解:泛型是类型抽象类。作用是什么:“通过对类型的抽象,封装,大量减少我们的代码量”。
从开始学习面向对象,“抽象”一词就不断的在耳边重复。但是在没有做过项目之前,尤其是在没有尝试着用面向对象的思维去做项目之前,“抽象”在脑子里永远都是一个虚无缥缈的词儿。那么在具体的项目中,我们是如何一步一步地把“抽象”变得具体课件的呢?——继承,泛型……
************“泛型”与抽象的不解之缘:
- 图一:没有使用框框架时的DAL层类图
注意:
①相同:该层类图存在大量的重复代码,类中的方法有90%的相似度
②不同:每个类的传入实体和返回实体个不同
- 图二:使用OOFramework框架的DAL层类图(根据图三画的)
注意:
公共的方法抽象出来放到了RepositoryBaseDAL类中,并向外提供一个接口。每个具体的类有自己的接口,此例中是IUserDAL(此接口也是向外暴露的接口),便与扩充属于UserDAL类自身的方法。公共的方法则继承自RepositoryBaseDAL类。
参数是:T,Tcollection,就是我们今天的主角“泛型”。
使用此策略解决了图一中存在的问题。同时也为框架之路铺好了垫脚石。
- 图三:DAL层整体架构图
************自解:
在学习泛型之初很是不理解泛型。也不能理解“对类型的抽象”的意思,不过通过一个项目的体验之后,现在可以大致的理解“泛型”。其实“泛型”所起的作用就跟抽象类,抽象方法所起的作用是一样的,只不过它是为了给类或方法后的括号里的东西来做抽象。
************好处:
①为不同对象提供服务:有了泛型,可是使相同的代码服务于不同的对象。
②抽象更加完善:没有泛型,我们只能抽象一些类,抽象方法,但是有了“泛型”,我们将传入的参数以及返回值都可以进行抽象。
③减少代码重复量:抽象能够减少大量的代码,“泛型”是抽象的一小部分,所以“泛型”必须学习。
④面向对象的必经之路:面向对象的三大要素基于抽象,而“泛型”是抽象的一小部分,所以“泛型”是面向对象的必经之路。
⑤架构之路的开始:要想做好架构,面向对象必须是必须掌握的,而“泛型”是衡量是否面向对象的一个重要标志。
************总结:
曾在《机房收费系统合作版(一)——框架搭建》中展示过该系统的架构,但是老师却在评论中写道:“
在这个系统中,没有看到你使用泛型啊!”当时不是很理解,老师为什么会说我没有用泛型,这次总结再返回去看那篇博客才知道,自己在框架图中忘了画泛型了。或许在当时看来只是忘了,但是现在看来,当初肯定不是忘了,而是根本就不理解泛型。现在将那篇博客的图纠正于此: