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

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

3 голосов
/ 04 сентября 2010

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

Теперь я делаю следующее:

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

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

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

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

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

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

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

1 Ответ

1 голос
/ 04 сентября 2010

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

this.auctioneer.start(n);

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

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

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

...