1.链表实现类图
2.操作元素的实现类图
我们可以看到,当我们企图依托于数据结构去实现某些解决策略的时候,我们不需要再构造一个复杂的新链表,比如我们的RevenueTable,去实现营业额的统计时,我们不会再重写它的插入,删除方法,我们只希望在遍历的时候自动实现某些操作,这样我们继承之后实现就很舒服了。
在第七章里面的营业额的代码,我们看一下,其实仅仅只需要:几行代码,就能够实现。
这就是多态的魅力。而我这种写法,也叫做模板模式。有兴趣的同学可以去了解一下。当数据结构和设计模式结合在一起,你去解决很多问题,就会非常非常简单!!
package DoubleDirTable;
import com.table.line.SingleElement;
import com.table.line.SumSingleTable;
public class RevenueTable extends OperationDDTable {
public RevenueTable(int value) {
super(value);
}
public int sum;
@Override
public int operation(IntDoubleDirElement intDoubleDirElement) {
IntDoubleDirElement selectElement = intDoubleDirElement.getNext();
SumSingleTable t1 = new SumSingleTable();
while (selectElement!= null) {
if (selectElement.getLast()!= null){
int dfValue = selectElement.getValue() - selectElement.getLast().getValue();
dfValue = Math.abs(dfValue);
t1.add(new SingleElement(dfValue));
}
selectElement = selectElement.getLast();
}
sum+= t1.min();
return 0;
}
}