3

whileループがあり、ユーザーはループがいつ停止するかを決定できるはずです。x秒後、xループ後、...この問題は、ポリシーベースの設計に従って実装する必要があります。私はこれをC++で行う方法を知っていますが、Javaで動作させることができません。

私が今していることは次のとおりです。

ポリシーを適用する必要があるメソッド「start()」を持つクラスAuctioneerがあります。

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

AbstractEndAuctionPolicyには「endAuction()」メソッドがあるため、policy.endAuction()を実行できます。C ++では、「extendsAbstractEndAuctionPolicy」の必要はありません...

しかし、私はこの方法を使用する方法を理解することができません、以下は機能していません:

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

グーグルが私に答えを与えていないので、皆さんが私を助けて、Javaのポリシーベースの設計について少し教えてくれることを願っています。

前もって感謝します。

4

1 に答える 1

1

通常、コンパイラはパラメータ型からジェネリック型を理解することができます。

this.auctioneer.start(n);

動作する可能性があります(コンテキストがほとんどないため、確実に判断するのは困難です)。しかし、これがコンパイラを満たさない場合は、試してみてください

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

JavaジェネリックはC++テンプレートよりもはるかに強力ではないため、Javaの領域で「ポリシー」という用語があまり使用されているのを聞いたことがありません。ただし、あなたのアプローチは良い近似のようです。

于 2010-09-04T11:55:55.717 に答える