【发布时间】:2013-04-10 15:27:58
【问题描述】:
我正在编写一种算法,该算法适用于位系列并执行一些操作,例如移位和与它一起。我想用两种不同的数据结构来测试算法: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 中我将不得不做一个演员,我真的不想要那个(因为速度)。
希望我已经解释得很好,祝你有个美好的一天!
尼哥
【问题讨论】:
-
我建议更正标题,因为您的问题更多是关于接口、继承和泛型,而不是关于策略模式。
标签: java design-patterns strategy-pattern