如何将许多依赖关系(外部API)正确地传递给Scala中的一个类



如何正确地将许多依赖项(外部API)正确传递到Scala中的类?

我正在研究使用许多API收集数据的应用程序。对于API,我的trait如下。

trait api {
  def url: Foo
  def parse: Bar
}

另外,大约有10个api特征的实现(每个API)。在家长演员中,我想为每个外部API创建一个儿童演员。我创建了新的特征和实现,

trait ExternalApis {
  val apiList: List[api]
}
object MyApis extends ExternalApis {
  val apiList = List(new ApiImpl1, ..., new ApiImpl10)
}

因此,现在我可以将MyApis对象(或ExternalApis的任何其他实现)传递给父行为者,并通过apiList映射以创建此类儿童演员。

在我看来,我缺少一些东西。有更多适当的方法吗?

您已完成的实现接近就绪。我想添加的东西是:

  1. 通过API列表可能不是执行此类事情的最理想的方式。每当您想在API列表中添加/删除某些内容时,您都必须更改代码的不同区域。一个建议是从config文件夹中读取此内容,在该文件夹中,配置文件夹将包含url,用户名,密码等内容。

如果您可以对这些API的使用提供更多的见解,这将有助于我的答案。

希望这有帮助!

最新更新