【发布时间】:2021-07-23 02:28:27
【问题描述】:
例如,如果我们有一个有 8 个参数的类:
class TestClass(
private val paramA: ParamA,
private val paramB: ParamB,
private val paramC: ParamC,
private val paramD: ParamD,
private val paramE: ParamE,
private val paramF: ParamF,
private val paramG: ParamG,
private val clientA: ClientA,
private val clientB: ClientB
)
大多数时候,当使用这个类时,总是会传递前 7 个参数。最后两个参数将取决于用例。如果我们需要使用clientA调用其他函数,它会传递clientA,clientB为null。如果我们需要使用clientB调用其他函数,它会传递clientB,clientA为null。在类内部,clientA 或 clientB 将用于调用其他函数,具体取决于哪个不为空。
我们可以在这里使用不同的方法吗?我不喜欢使用 if...else... 检查 clientA 或 clientB 是否为空,然后执行其他操作。我们可以将这两个参数替换为
private val clientGeneric: ClientGeneric
那么clientA 和clientB 可以从ClientGeneric 继承并传递给TestClass。但我没有看到让 clientA 和 clientB 从 ClientGeneric 类继承的好方法。
【问题讨论】:
-
“但我没有看到让 clientA 和 clientB 从 ClientGeneric 类继承的好方法。”为什么不呢?
-
你能定义什么是客户端吗?就像那些客户对云提供商一样吗?像 azure-client 和 aws-client 一样?其他功能是什么意思?
-
一些内部Java服务客户端调用服务API
标签: kotlin oop design-patterns