| 赞 | 13  | 
 
| VIP | 118 | 
 
| 好人卡 | 28 | 
 
| 积分 | 13 | 
 
| 经验 | 35779 | 
 
| 最后登录 | 2017-7-6 | 
 
| 在线时间 | 1564 小时 | 
 
 
 
 
 
Lv3.寻梦者 
	- 梦石
 - 0 
 
        - 星屑
 - 1305 
 
        - 在线时间
 - 1564 小时
 
        - 注册时间
 - 2008-7-30
 
        - 帖子
 - 4418
 
 
  
 
 | 
	
怎么说呢?alias的最直接作用就是“给方法取别名”了(当然也可以给变量)。譬如下面的左图,x指代了某种东西,那么我们给x取别名y,那么用y也可以访问到同样的东西了。 
 
 
 
那alias究竟有什么实际的用处呢?这个通常体现在对方法的应用上。假设有一个叫作“old”的方法,我们想向old中添加新的代码。这时候就遇到了两个困难: 
 
- 我们不知道何处也调用了这个old方法,所以我们不能简单的新定义一个方法来添加内容。
 - old方法对我们来说是个黑盒(Black Box),我们在运行时(Runtime)我们没有简单的方法将其内部定义给抽取出来。
 
 
  
 
所以,就用到了给方法取别名的技术,就像下图这样: 
 
 
 
我们给这个叫old的方法取了一个叫new的别名,这两者都指代的是同一个方法。然后重新定义old,意思将old与另外一个东西关联起来,而不是去修改old关联的东西。将old定义为什么呢?就是之前那个old方法,由于“old”这个名字不再指代那个方法了,所以我们就用它的别名“new”来指代。这个新定义的东西,对我们来说是开放的,所以我们可以为它添加东西。 
 
这样,其它地方如果调用了old,也能享受我们定义的新内容所带来的福利。 
 
 |   
 
评分
- 
查看全部评分
 
 
 
 
 
 |