避免多个ifs的设计模式

biq*_*llo 6 java android design-patterns

我有一个非常糟糕的类,有两种方法可以在服务可用时启动或停止某些服务.像下面这样的东西(它们不是if-elses,只是如果):

void startServices() { 
if (service1 == true) { 
  start1();
}
if (service2 == true) { 
  start2();
} if (serviceN == true) { 
  startN();
} 
} 


void stopServices() { 
if (service1 == true) { 
  stop1();
}
if (service2 == true) { 
  stop2();
}
if (serviceN == true) { 
  stopN();
}

}
Run Code Online (Sandbox Code Playgroud)

你推荐我任何设计模式让它更美观吗?

谢谢!

Dav*_*ton 4

依靠; 我的第一反应是将服务存储在哈希或数组中。每个服务都实现一个带有启动和停止方法的接口。启动或停止服务只需要服务密钥或索引。

也许它仍然有点脆弱,但在不知道更多的情况下,我不确定如何“域化”ut,所以它看起来更像你正在做的事情。