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