Я пишу алгоритм, который работает на небольшой серии и выполняет некоторые операции, такие как shift, AND с ним. Я хотел протестировать алгоритм с двумя разными структурами данных: MutableBigInteger и BitString (javabdd), поэтому я подумал, что попытаюсь придумать какой-нибудь умный шаблон дизайна (так как я этого не делаю), и я нашел стратегию разработки узор довольно интересный. Единственное, что меня беспокоит, это то, что для функции И ему нужен тот же тип, который нужно вычислить. Я объясняю с некоторым кодом:Шаблон разработки стратегии (с использованием метода аргументов) - JAVA
тезисов моих два разных класс:
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);
}
для меня вопрос, как добиться того, чтобы с помощью функции И, поскольку каждый мой собственный класс ждет того же класса в аргументе. Я думал, что это нравится:
public interface BitTrain {
public void shift();
public void and(BitTrain b2);
}
и расширить свои два класса с этим интерфейсом, но это не помогает мне, потому что, в MutableBigInteger и битовая я должен сделать бросок , Я действительно не хочу этого (из-за скорости).
Надеясь, я достаточно хорошо это объяснил, желаю вам хорошего дня!
Нико
Я хотел бы предложить исправление названия, потому что ваш вопрос больше об интерфейсах, наследование и дженериков, а не о стратегии. –