zoukankan      html  css  js  c++  java
  • 机房收费系统合作版(四)——泛型之解

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

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

     

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

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

     

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

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


    注意:

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

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

     

     

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


    注意:

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

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

     

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


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

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

     

    • 图三:DAL层总体架构图



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

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

     

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

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

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

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

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

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

     

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

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

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

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


     

  • 相关阅读:
    python常用库
    python多线程
    python内存泄漏
    用python实现js语言里的特性
    nginx + uwsgi
    mysql语句
    urllib模块
    提取数据xpath,re,css
    selenium模块
    脱壳
  • 原文地址:https://www.cnblogs.com/gccbuaa/p/6898636.html
Copyright © 2011-2022 走看看