我有一个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设计,因为谷歌没有给我答案。
提前致谢。
答案 0 :(得分:1)
通常编译器能够从参数类型中找出泛型类型,即简单地
this.auctioneer.start(n);
可能有用(很难说清楚,因为你提供的上下文很少)。但如果这不满足编译器,请尝试
this.auctioneer.<NewBidPolicy>start(n);
由于Java泛型的功能远不如C ++模板,因此我甚至都没有听说过Java领域中使用的术语“策略”。但是,你的方法似乎是一个很好的近似。