设计数据结构的时候常常为了性能考虑,很容易引入一些冗余的属性,不是说多余的属性不好,我们应该按照一个正常的思维方法去设计数据结构。
看看一个记录路线的数据结构的例子,一条路线有起点,终点以及距离三个基本的信息,第一种设计方式如下,分别用三个属性值记录三个值
import java.awt.Point;
public class Line {
public Point start;
public Point end;
public double distance;
}
我们可以看出距离是受另外起点和终点控制的,它们的变化会导致距离值的变化,所以第二种设计我们考虑使用一个方法来记录距离的信息如下
import java.awt.Point;
public class Line {
public Point start;
public Point end;
public double distance(){
return start.distance(end);
}
}
这种设计和数据库的范式原则原理上也是一样的(比如通过个人信息的出生年份即可推算出年龄信息,所以没必要多设计一个字段保存年龄信息)但是实际开发过程中,我们为了业务的方便或者是出于性能的考虑,我们可能会考虑设计缓存来记录计算结果,第三种设计方式如下
import java.awt.Point;
public class Line {
public Point start;
public Point end;
public boolean changed = true;
public double distance;
public Point getStart() {
return start;
}
public void setStart(Point start) {
this.start = start;
changed = true;
}
public Point getEnd() {
return end;
}
public void setEnd(Point end) {
this.end = end;
changed = true;
}
public double distance(){
if(changed){
distance = start.distance(end);
changed = false;
}
return distance;
}
}
建议尽量使用get/set来获取和设置属性信息,如上面的例子,可以很方便地添加缓存控制。
分享到:
相关推荐
java毕业设计——java基于纠错码的冗余技术的研究——EVENODD码的设计与实现(源代码+论文).zip java毕业设计——java基于纠错码的冗余技术的研究——EVENODD码的设计与实现(源代码+论文).zip java毕业设计——java...
硬盘修复——数据错误(循环冗余检查).pdf
How to make an embedded controller for…——实时冗余系统zip,How to make an embedded controller for…——实时冗余系统
基于纠错码的冗余技术的研究——EVENODD码的设计与实现.pdf
网络冗余结构的设计及实施——以某矿业集团信息化建设为例,张守学,何君燕,煤矿信息化是矿井实现安全高产、高效的必然途径。已有的矿井信息化、自动化探索实践表明,煤矿信息化能有效提高企业的安全生产效
政企风险水平与新能源企业创新可持续性——基于非沉淀性冗余资源的调节作用.pdf
JAVA基于纠错码的冗余技术的研究——EVENODD码 的设计与实现(源码+论文)
**JAVA基于纠错码的冗余技术研究——EVENODD码的设计与实现** 本资源提供了一个全面的JAVA毕业设计项目,主题为"基于纠错码的冗余技术",特别关注EVENODD码的设计与实现。该项目旨在帮助学生在深入学习数据通信和...
JAVA基于纠错码的冗余技术的研究——EVENODD码的设计与实现.zip
基于JAVA 纠错码的冗余技术的研究——EVENODD码的设计与实现.zip基于JAVA 纠错码的冗余技术的研究——EVENODD码的设计与实现.zip基于JAVA 纠错码的冗余技术的研究——EVENODD码的设计与实现.zip基于JAVA 纠错码的...
javaweb毕业设计-JAVA基于纠错码的冗余技术的研究——EVENODD码的设计与实现(源代码+lw)(可做课程设计).rarjavaweb毕业设计-JAVA基于纠错码的冗余技术的研究——EVENODD码的设计与实现(源代码+lw)(可做课程设计)....
如果发现错误,则根据冗余位的信息进行错误的定位和纠正。 实现技术: 实现EVENODD码可以使用编程语言如Java来进行,通过编写算法来计算冗余位并进行错误的检测和纠正。 性能评估: 设计和实现EVENODD码后,需要对...
JAVA基于纠错码的冗余技术的研究——EVENODD码的设计与实现(源代码+论文)JAVA基于纠错码的冗余技术的研究——EVENODD码的设计与实现(源代码+论文)JAVA基于纠错码的冗余技术的研究——EVENODD码的设计与实现(源代码+...
JAVA基于纠错码的冗余技术的研究——EVENODD码的设计与实现(源代码+论文) JAVA基于纠错码的冗余技术的研究——EVENODD码的设计与实现(源代码+论文) JAVA基于纠错码的冗余技术的研究——EVENODD码的设计与实现(源代码...
摘要针对存储空间严格受限条件下的图像存储, 提出了基于图像块之间信息冗余的数字图像压缩新方法。在图像块分类划 分之后直接丢弃信息冗余块, 然后对剩余块进行压缩存储。解压缩时利用边界信号对被丢弃的图像信息...
JAVA基于纠错码的冗余技术的研究——EVENODD码的设计与实现(源代码+).rar
JAVA基于纠错码的冗余技术的研究——EVENODD码的设计与实现(源代码+LW)JAVA基于纠错码的冗余技术的研究——EVENODD码的设计与实现(源代码+LW)JAVA基于纠错码的冗余技术的研究——EVENODD码的设计与实现(源代码+LW)...
JAVA基于纠错码的冗余技术的研究——EVENODD码的设计与实现(源代码+论文).zip