调用类的不同实现

zer*_*d0l 0 java design-patterns

我有2个不同的接口KafkaMetricsReporter名称实现它implementation1implementation2.每个实现都有start启动少量线程的方法.

从另一个类我有两个实例implementation1implementation2,然后运行start每一个类的方法.虽然我可以在给定的类中逐个执行,但是有更简洁的方法来执行此操作,以便将来如果我必须再添加一个实现,那么这样做会更容易.请给我一些指示.

更正:KafkaMetricsReporter是一个界面

lau*_*une 5

这是你在找什么?不确定我是否理解Q.

KafkaMetricsReporter[] kmrs = new KafkaMetricsReporter[]{
    new implementation1(),
    new implementation2()
};

for( KafkaMetricsReporter kmr: kmrs ){
    kmr.start();
}
Run Code Online (Sandbox Code Playgroud)