zoukankan      html  css  js  c++  java
  • 反射并不好

      大概是通过字符串调用相关的函数或者类,并且这个字符串和函数或类的名字一模一样。这样并不好。

      编程语言中可识别的字符都是给人看的,为了编码方便。在编译的时候这些字符都是临时性引用,会被替换成相应简易的数字。这种替换增加了编译的灵活性,也给编程增加了一层“魔法”。

      这就像定下了一条规则,函数或者类的名字不会影响到内部的运作机制。这样编译器就可以安心做好自己的事。它的逻辑渗透有一层保护壳,保证不会被外界打扰。

      加入了反射就破坏了这层保护壳。使得编译器牵扯进一些归属于它职责之外的内容。这使得整个语言的健壮性令人堪忧。

      就像一个人做事,抛弃了一直秉承的原则。

      Java和C并不一样,C属于零凑型,java自身是一个整体。所有的类来自同一个继承等,它有一个统一的整体。C的话实现反射还说得过去,因为它本身就是“功能的拼凑”。可是java已经是一个整体,有它的一致性,所有操作不应该打破它建立的抽象层。

      反射即是goto,在它面前没有“类”可言。随意的跳转打破了类和类之间的关联性,也打破了类对方法的聚合性,所有方法又变回了放在相应文件里的函数,并不再是对象的行为。

      或许框架可以限制goto的范围,可是这种类名字符串回归真实空间的功能使用,会影响底层架构。

      反射并不是健壮的发展方式。

      编程语言可以有这个功能,并不代表可以被推崇。

  • 相关阅读:
    最近学习的情况
    0Day – 2011.1.12[From B4A]考试终于完了
    PHP 在NetBeans中的测试[转自NetBeans.org]
    12月武汉下雪了
    Delphi下指针使用总结
    0Day – 2010.12.27[转自B4A]
    AQTime教程
    C #define理解
    C 环境的搭配
    数据结构 字符串的模式匹配
  • 原文地址:https://www.cnblogs.com/flangrean/p/15545585.html
Copyright © 2011-2022 走看看