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

问题描述

我有一个界面:

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 (将#修改为@)