微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将函数委托给所有其他接口

如何解决将函数委托给所有其他接口

我有一个界面:

interface EmployeeActions

interface SalesEmployeeActions : EmployeeActions {
   fun onSaleRequest()
   //..more functions
}

interface HREmployeeActions : EmployeeActions {

} 

...//more EmployeeActions

现在我在类中使用它的方式基本上是一个聚合,我将拥有许多这样的对象,我想一起调用它们。

class FakeEmployeeDb {
   val employees: MutableList<EmployeeActions> = mutablelistof()

   private val salesEmployees:
     get() = employees.filterisinstance<SalesEmployeeActions>()

   ....

   val salesManager = object: SalesEmployeeAction {
       fun onSaleRequest() {
          salesEmployees.forEach { it.onSaleRequest() }
       }
       ... //more functions
   }

   private val .... // other Managers

   // also at some point employees are added using this API...
   fun addEmployee(employee: EmployeeActions) {
      employees.add(employee)
   }
   
}

问题: 是否有 kotlin-y 方式以可扩展的方式编写此代码

在实际情况下,客户端只会在这xyzManager 对象上调用 API,并且每个对象的工作只是将该信息传递给所有员工。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。