我在不同版本的实现之上创建层时遇到的问题。目标是抽象出实现细节,调用者不需要关心我们使用的是哪个实现。
请在此处查看代码示例
^ 该代码可以更好地解释我遇到的问题。
我们有两个版本的 Stream 实现Stream1和Stream2. 它们有一个共同的界面Stream。
两者都有对应的BindStreamHandler函数接受StreamHandler1or StreamHandler2。
我们有一个函数BindStreamHandler和一个通用的实现func StreamHandlerImpl(s Stream)。无论我们使用Stream1or Stream2,一般实现是相同的。
现在我面临一个问题 downcasting StreamHandlerImpl(accepting abstract Streamto StreamHandler1(accepting Stream1))。
慕盖茨4494581
相关分类