抽取公共类思想

问题出现场景
  1. 项目进行时,随着代码量的不断增加,会出现很多重复写的代码,代码完全一致,但是重复写了很多遍,因此考虑提取大家都需要用到的部分,抽取出来作为单独的一个部分,其他部分需要用到这部分代码时候,调用即可。
  2. 不同的模块抽取的格式不尽相同,但是核心思想都一样,抽取重复率高的部分,从而达到减少写代码的目的
抽取公共类案例
Servlet抽取公共类
  1. 首先是与之前做的简单的Javaweb管理系统中对于Servlet的处理
    在这里插入图片描述

  2. 可以看到,这里对每个功能都做了一个 servlet 。
    但是如果这个信息管理系统不仅包括学生,还包括教师,职工等其他岗位的话,Servlet的数量很显然会成倍增加,难于管理和扩展。

  3. 那么考虑一种其他方式来处理单独的对象如学生,教师的所对应的方法。使用一个servlet来对应一个对象,在这个servlet中写这个对象会使用到的方法
    在这里插入图片描述这是
    在这里插入图片描述

  4. 可以看到,在上面的方法中,只用了一个 userservlet 来囊括所有关于 user 的操作,在这个操作对象里面写了关于它的所有方法。

  5. 同时,我们每次进行 servlet 操作之后,相应的数据都会到一个页面上,无论直接还是间接。

  6. 因此,我们考虑用这样一种方式:触发servlet的链接,form,Ajax或者其他方式,在发起亲请求的时候,传递过来一个方法的参数名,例如:
    在这里插入图片描述

  7. 同样的,我们的方法也会返回一个路径,例如:
    在这里插入图片描述

  8. 现在的问题是,怎么样才能获取到这个方法名的参数,去调用这个方法,然后接收到这个方法返回的参数。怎样将这两者衔接起来。

  9. 我们使用这样的方法实现接收参数的同时,调用方法,最后跳转到方法返回的路径
    在这里插入图片描述

  10. 我们可以选择把这一串代码放置到 userServlet 其中。但是,对于教师,职工获知其他,我们仍然需要重复写以上代码,仍然未达到简化代码的目的。

  11. 最终,我们考虑将这一段代码再次抽取,作为一个 baseServlet 。每一个具体的servlet 如 用户,教师,商品等等,都继承自这个 Servlelt ,从而达到了最终目的:抽取复用率高的代码,做成公共类,达到简化代码的目的。
    在这里插入图片描述在这里插入图片描述

Jsp页面的提取公共部分
  1. 对于一个前端页面,往往其顶部和底部都是固定的,你页面的跳转,仅改变中间部分的内容。
  2. 例如天猫:
    2.1 这是天猫的主页面
    在这里插入图片描述2.2 这是随机点了一个链接之后的页面

在这里插入图片描述

  1. 可以看到,对于顶部红圈内的内容,无论页面怎么跳转,都是固定的。
  2. 那么对于这种效果,在页面较少的时候,我们可以考虑在每个页面内都写入这部分代码。但是当页面数量较多时候,很显然,每个页面内都写入这部分代码的方法会造成大量的重复,冗余的代码。而且,如果头部信息需要更改,你需要往所有用到这部分代码的页面中进行修改。
    这样,不仅产生了重复的代码,而且修改起来极为不便。
  3. 因此,我们考虑提取出来复用率极高的部分,抽取出来。然后每个需要这个页面的部分,调用这个页面即可。(这里我们用header代表顶部,footer代表底部)
    在这里插入图片描述
  4. 然后我们需要使用到这些页面的部分进行调用即可,页面的代码布局如下
    在这里插入图片描述
  5. 可以看到,我们通过jsp的 include 标签,引入了 header 和 footer 这两部分,从而达到了简化代码,扩展方便的目的
总结
  1. 所谓提取公共类,就是将复用率高的部分抽取出来,其他的地方需要用到这部分的时候,不用重复写这部分代码,只需要调用我们抽取出来的那个公共的类即可
  2. 抽取公共类的优点:
    2.1 减少了代码量
    2.2 提升了代码的可读性
    2.3 提高了代码的可扩展性
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值