诊断Java代码: 筹划可扩大的操纵程序,第2部份[Java编程]
本文“诊断Java代码: 筹划可扩大的操纵程序,第2部份[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
玻璃箱可扩大性是指这样一种方法:软件系统可在源代码可以查看而不可以改正时被扩大 ― 它是黑箱计划(在这里构建扩大时,不查看原始代码)和开放箱计划(扩大代码直接写入到底子代码)的折衷.因为新的扩大直接成立在原始代码底子上,但不窜改原始代码,所以,玻璃箱计划大概是扩大一个软件系统最有效、最安全的办法.在 诊断 Java 代码的这一部份中,Eric Allen 详述了上个月谈及的玻璃箱可扩大性主题.读完本文后,您将知道什么时刻利用玻璃箱,并将得到一些若何实现它的提醒.
随着信息处理任务(和与之相关的本钱)多样性的增长,很明显,在技术预算收缩的形势下,增大代码重用的程度是一种有效的计划(和商业)战略.假如系统的可扩大性是您的目标,那就问问您自己,“系统应当具有多大的可扩大性以及我能使系统具有多大的可扩大性?”然后考虑以下事实:
增添可扩大性的代价是性能和可测试性的降低.
可测试性最好的系统普通也是最简单的系统;增添可扩大性常常增添复杂性.
要拟定一个成功的可扩大计划筹划,关键的一点是知道您筹划将来怎样扩大该系统.
在本系列的 第 1 篇文章中,我概述了系统大概展示出来的各种可扩大性情势 ― 黑箱计划以及两种 白箱计划,即 玻璃箱和 开放箱.接下来,我们将更深化地探究这些情势.
我们将从玻璃箱可扩大性开始我们的路程.
玻璃箱中的对等元素
早些时刻,我已把玻璃箱可扩大性定义为这样一种方法:软件系统可在源代码可以被查看而不可以被改正时被扩大.主要有两种方向,程序可顺着这些方向成为玻璃箱可扩大,它们是:
数据的扩大
这些数据的功效性的扩大
挑选使一个程序顺着这个两维空间中的肆意一维可扩大都将影响到程序的后果体系构造.在大都情形下,这个决意也将对性能产生影响.
数据作为可扩大的一维
让我们首先来考虑最自然地包含在面向对象语言(比方 Java)中的可扩大性的维 ― 数据.在面向对象的语言中,某些最本质的构造(即类层次构造、接口和抽象办法)主如果为了答应顺着该维的可扩大性而被包含.
要扩大一个复合数据构造以包含新的子范例,只需定义一个被声明成担当原始复合数据构造的根的新类便可以做到.比方,考虑以下简单的用于二叉树的类层次构造:
清单 1. 一个简单的用于二叉树的类层次构造
abstract class Tree {
}
class Branch extends Tree {
private int value;
private Tree left;
private Tree right;
public Branch(int _value, Tree _left, Tree _right) {
this.value = _value;
this.left = _left;
this.right = _right;
}
public Tree getLeft() {
return this.left;
}
public Tree getRight() {
return this.right;
}
public int getValue() {
return this.value;
}
}
class Leaf extends Tree {
}
以上是“诊断Java代码: 筹划可扩大的操纵程序,第2部份[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |