我遇到了一个关于如何打包接口,接口客户端和继承的问题。也就是说,在下面的书中,作者提到Switachable更适合与Switch一起部署为一个组件,而不是Light。
我想要理解的是它背后的原因(Switch和Switchable都打包在一个组件中,而不是Switchable和Light),如果可能的话还有示例。
我认为有两种情况都是有效的。一个例子是optiste,即IStream,FileStream在一个组件中,ISream客户端在另一个组件中。
以下是来自unclebob在C#ch 33,p497中的敏捷。
答案 0 :(得分:1)
由于Light
继承自Switchable
,因此也可以使用Switchable
进行部署 - 但是,由于命名,主要类似乎与{{1}进行交互} interface将是Switchable
- 这意味着两者紧密耦合:你永远不应该将紧密耦合的类/接口定义放在单独的程序集中。
您还可以设想其他Switch
类,例如Switchable
或一整套Outlet
。这些可以在以后添加,它们与Appliances
无关,这意味着Light
和Light
不一定是同一组件的一部分。但是,Switchable
类仍将适用于这些新类并适用。
(确实可以设想Switch
界面的不同消费者,但这可能是一种尴尬的改编,例如Switchable
通过记住切换开/关状态最后一个方法被调用。但是,如果选择了名称,ToggleButton
仍然意味着可能涉及Switchable
。)
我希望这能回答你的问题。