JAVA为什么要反射?(小白向)

本篇博客以一个简单的例子讲解为什么需要反射,以及为什么需要JavaBean这种组件。能让刚开始接触这个概念的小白们对这两个概念有一个很好的理解。

本博客建立在你知道怎么用反射(就是通过类名创建对象),但不知道为什么要用反射(和new一个对象有什么区别)。

PS:打括号的内容可以不用看,只是为了更具体的描述一下,看不看无所谓了。

从一个很简单的程序来讲解一下:

你需要设计一个程序,这个程序中,有一样东西是需要用户名和密码才能访问的(有什么东西无所谓),重要的是你需要一个用户名和密码。

设计方法1:

在程序里直接定义String用来存password和username,然后通过用户输入判断是否相等即可。

这种方式很明显看出了一个弊端,你要是写代码的时候心血来潮,密码是:2drqwd!as什么的,当你需要改密码的时候,你还得去修改代码,找到password,改了再运行,要是代码过多(1W行甚至更多),找都要找死个人(当然可以用ctrl+F找的快哈)。

我们一般称这种代码写死了(我们一般称这种人 土块)

设计方法2:

怎么把代码写活呢?

那肯定是把password配置在txt(或者其他文件、数据库里面),然后我们通过访问这个txt,去获取密码。当我们需要修改password的时候,只需要修改相应的配置文件即可

为什么需要JAVA反射呢?

有了上面的例子,我们就很明白了,如果,我们在某一个程序中,需要使用实现了Animal接口的Dog类,让他叫两声,叫这个动作在接口中就定义了;如果有一天,我们不想让Dog叫了,想让Cat叫,我们是不是还要修改代码,去new一个Cat,然后把Dog换成Cat呢?得亏你是自己写代码,在现实中,有很多代码的源代码你都拿不到,都修改不了;或者说,你把产品交个客户,还希望他去修改代码?

不如这样

我们在编写代码的时候,只写有一个动物会叫这个功能,我们利用反射创建一个类,而反射需要的参数是一个字符串,我们将字符串存入配置文件中,这样,我们修改配置文件即可动态产生不一样的代码了,而用户,通过修改配置文件就可以了,他不需要怎么写代码(一般也不会知道)。

 

如果没有意外的话,大部分人写代码最开始接触反射,都是在JBDC的时候,当时我们很疑惑,为啥要这个样子搞呢?通过学习反射机制,我们可以看出,我们连接数据库这几行代码唯一变的就是那个com.mysql.jdbc.Driver(别说什么数据库名称啊!用户密码啊什么的会变),我们站在使用者的角度去看这种方式,觉得很好用。

 

我们需要做的,就是从使用者变成设计者。

 

 

 

 

 

  • 15
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值