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