Дизайн на основе политик Java

У меня есть цикл while, и пользователь должен иметь возможность решить, когда цикл прекратится. Через x секунд, после x циклов... Эта проблема должна быть реализована в соответствии с политикой. Я знаю, как сделать это в C++, но не могу заставить его работать в Java.

Что я делаю сейчас, так это следующее.

Существует класс Auctioneer с методом "start ()", где должны применяться политики:

public <E extends AbstractEndAuctionPolicy> void start(E policy) { //use policy here }

Поскольку AbstractEndAuctionPolicy имеет метод "endAuction()", мы можем сделать: policy.endAuction(). В C++ нет необходимости "расширяет AbstractEndAuctionPolicy" ...

Но я не могу понять, как использовать этот метод, следующее не работает:

this.auctioneer.start<NewBidPolicy>(n);

Надеюсь, что вы, ребята, сможете мне помочь и немного рассказать об основанном на политике дизайне в Java, потому что Google не дает мне ответов.

Заранее спасибо.

1 ответ

Решение

Обычно компилятор может определить общий тип из типа параметра, то есть просто

this.auctioneer.start(n);

может работать (трудно сказать наверняка, так как вы даете так мало контекста). Но если это не удовлетворяет компилятору, попробуйте

this.auctioneer.<NewBidPolicy>start(n);

Поскольку дженерики Java гораздо менее мощны, чем шаблоны C++, я даже не слышал, чтобы термин "политика" использовался в сфере Java. Тем не менее, ваш подход кажется хорошим приближением.

Другие вопросы по тегам