我正在编写一种算法,该算法适用于一些系列并执行一些操作,例如移位和与它一起。我想用两种不同的数据结构来测试算法:MutableBigInteger 和 BitString (javabdd),所以我想我会尝试一些聪明的设计模式(因为我不经常这样做),我找到了策略设计图案很有趣。唯一困扰我的是函数AND,它需要计算相同的类型。我用一些代码解释:
论文是我的两个不同的课程:
public class MutableBigInteger {
public void shift();
public void and(MutableBigInteger b2){
// ...
}
}
public class BitString {
public void shift();
public void and(BitString b2){
// ...
}
}
我想在创建我的类时进行设计,该设计执行我只是在这些类之间选择的算法。该算法看起来像:
while( ... ) {
bittrain.shift();
bittrain.and(bittrain2);
}
我的问题是如何使用函数 AND 来实现这一点,因为我自己的每个类都在参数中等待同一个类。我想我会喜欢这个:
public interface BitTrain {
public void shift();
public void and(BitTrain b2);
}
并用这个接口扩展我的两个类,但它并没有真正帮助我,因为在 MutableBigInteger 和 BitString 中我将不得不做一个演员,我真的不想要那个(因为速度)。
希望我已经解释得很好,祝你有美好的一天!
尼科