诊断Java代码: “杀手组合”― mixin、Jam和单元测试 - 编程入门网
oString())
}
...
}
通过这种方式,我们能够测试本身很难测试的类的继承,而不用考虑这些类的父类位置在哪里。随后难以测试的核心功能被分离成一个小型的父类集合,而依赖该集合的功能就可以在完全通过测试的 mixin 类中轻松得到。 有关 mixin 和类属类型的最后几句话 最后,我疏忽了一点:在讨论 Java 编程中的 mixin 时,至少应该简要讨论一下 mixin 如何与向 Java 添加类属类型的 JSR-14 建议相关联。 因为类属类型允许由类所引用的类型来参数化这些类,Java 语言中对类属类型的真正一流支持必须支持一种 mixin 形式,因为可以定义类以继承类型变量。 遗憾的是,Sun 的 JSR-14 原型编译器所用的方法禁止这样的“一流”继承,因为在静态编译过程中会擦除类属类型;即使在运行时也不存在任何类属类型信息。在 mixin 情形中,这意味着会根据类型变量的限制而擦除 mixin 的父类,很明显,这不是我们想要的。 与此相反,类属类型的 NextGen 公式(2002 年 12 月 Rice JavaPLT 会发布 beta 测试发行版)在运行时使类属类型信息保持可用。因此可以继承它以支持一流的类属类型,包括 mixin。事实上,在首个 beta 测试发行版之后不久的扩充版本中,应该只包含这样的功能。在 参考资料中可以获得已扩展语言的设计。 正如本文及上一篇专栏文章所演示的,当前的 Java 语言不是语言设计的终结者,特别是当我们使用测试优先的编程风格时。还存在许多功能强大的、自然语言的扩展,它们允许我们更迅速更全面地测试程序。 尽管如此,但令人高兴的是,这两篇文章都说明了 Java 语言所提供的巨大灵活性和可扩展性。这个扩展性是该语言和 JVM 设计的安全性和可移植性直接带来的结果。因为最初的设计人员很有远见,所以 Java 语言将会证明,在将来很长一段时间内,它会保持是一种功能非常强大的、有意义的语言,当程序员构建日益复杂的应用程序时,它继续向程序员提供服务。 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |